firebase - 如何在Flutter中将Firebase Auth与Firestore结合使用

标签 firebase flutter dart google-cloud-firestore firebase-authentication

我有一个基于cloud_firestore firebase_auth的Flutter应用程序,我通过身份验证 firebase添加用户(蓝色按钮),并将 ID 保留在代码中,以便该用户是管理员,常规用户可以创建一个通过应用程序帐户(电子邮件和密码),我要确保管理员是唯一可以从数据库中删除数据的人,而其他用户则只能读写,所以我这样做:
我将Cloud Firestore项目中的角色更改为:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
      allow delete : if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
    }
  }
}
这是否成立,Firebase如何对 uid 敏感?
也许我的问题是如何通过firestore请求发送 uid
提前谢谢

最佳答案

  • 如果您有write规则,则该规则允许创建,更新和删除操作。
  • 如果同一操作有多个规则,则将它们进行“或”运算。

  • 这意味着您的allow read, write: if request.auth != null允许任何经过身份验证的用户创建,更新和删除数据库中的任何文档。
    如果只希望允许任何经过身份验证的用户创建或更新文档,而只希望具有该特定UID的用户删除文档,则必须显式命名这些操作:
    allow read, create, update: if request.auth != null;
    allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
    
    有关完整信息,请参见granular operations上的文档。

    关于firebase - 如何在Flutter中将Firebase Auth与Firestore结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63762344/

    相关文章:

    firebase - 接收FCM通知点击事件

    ios - Firebase Analytics 何时跟踪我的用户?

    firebase - 如何将数据从Firestore设置为Flutter中的TextField的初始值?

    android - 服务连接到 Firebase 是个坏主意?

    android Firebase 应用程序已停止

    firebase - Flutter:我们如何在桌面应用程序中使用 Firebase 数据库

    android - flutter : how to persist a List<num> using shared preferences?

    android - 如何从 Flutter 中的下拉按钮导航到另一个屏幕?

    flutter - 函数不会从 initState() 中执行

    flutter - 如何以最好的方式实现图标下的动态文本