通过规则 (Pyrebase) 授予计算机对实时数据库的唯一访问权限

Giving a computer sole access to the Realtime Database through Rules (Pyrebase)

我在我的 PC 上使用 Python 来更新实时数据库,而 Python 脚本应该是唯一可以访问实时数据库的脚本,至少用于写入.

数据库是否有唯一的 'token',我可以将其添加到脚本中以授予它访问权限,然后让规则只允许具有该 'token' 的用户访问。

我的想法是在 Python 的 Firebase 配置中添加它。

firebaseConfig={
"apiKey": "XXX",
"authDomain": "XXX",
"databaseURL": "XXX",
"projectId": "XXX",
"storageBucket": "XXX",
"messagingSenderId": "XXX",
"appId": "XXX",
"measurementId": "XXX"

*"Unique Token Identifier": "123.."
}

firebase = pyrebase.initialize_app(firebaseConfig)

您可以添加一条数据库规则,只允许您的用户帐户(即您的 UID 写入数据)。

{
  "rules": {
    ".read": true,
    ".write": "auth.uid === 'your_uid'"
  }
}

这些规则将允许任何人读取数据,但只有您可以写入。确保根据需要更改规则,以便用户只能读取他们应该读取的数据。


如果您不使用 Firebase 身份验证,那么另一种方法是将 ".write" 更改为 false,这样就没有人可以写入数据库并使用绕过​​任何安全规则的 Firebase Admin SDK写入数据库。 Admin SDK 使用服务帐户而不是 public Firebase 配置,因此编写一个单独的脚本以使用 Admin SDK 写入数据库并在您的计算机上使用它。

如果您只运行在受信任的环境中运行Python脚本,例如您自己的机器,我建议adding service account credentials进行设置。

使用服务帐户,您的脚本 运行s 作为绕过安全规则的管理进程,因此您可以使用这些规则来确保只有您的脚本可以访问数据库:

{
  "rules": {
    ".read": false,
    ".write": false
  }
}