通过规则 (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
}
}
我在我的 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
}
}