Pra*_*ath 8 android firebase firebase-authentication firebase-realtime-database
我正在开发一个Firebase Realtime数据库应用程序。在应用程序中,用户不想Authenticate。所以,我将规则设为公开
{
"rules": {
".read": true,
".write": true
}
}
Run Code Online (Sandbox Code Playgroud)
(用户无需注册/登录)。但在Firebase Realtime数据库部分,它表示为警告
您的安全规则被定义为公开的,因此任何人都可以窃取、修改或删除您数据库中的数据。
那么,如何在不验证(登录/注册)用户的情况下保护数据?
如果您想在不需要用户使用其凭据登录的情况下保护数据访问,请考虑使用 Firebase 的匿名身份验证。使用此提供程序,您只需使用以下一行代码即可登录用户:
FirebaseAuth.getInstance().signInAnonymously();
Run Code Online (Sandbox Code Playgroud)
运行此程序后,您将不知道用户的任何详细信息。但是您现在可以在对数据库的任何调用中识别用户,然后使用数据库安全规则中的信息来确保用户只能访问他们授权的数据。
有关此示例,请参阅有关在安全规则中利用用户信息的文档,其中包含以下示例:
例如,您的应用可能希望确保用户只能读取和写入他们自己的数据。在这种情况下,您需要
auth.uid在请求的数据上的变量和用户 ID之间进行匹配:
{
"rules": {
"users": {
"$userId": {
// grants write access to the owner of this user account
// whose uid must exactly match the key ($userId)
".write": "$userId === auth.uid"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
要了解更多相关信息,我建议阅读有关保护数据访问的完整文档。
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |