首页 > 解决方案 > 如何在 Flutter 中使用 Firebase Auth 和 Firestore

问题描述

我有一个基于cloud_firestorefirebase_auth的颤振应用程序,我通过Authentication 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敏感?

也许我的问题是如何发送带有请求的uid 。firestore

先感谢您

标签: firebaseflutterdartgoogle-cloud-firestorefirebase-authentication

解决方案


  1. 如果您有write规则,则该规则允许创建、更新和删除操作。
  2. 如果您对同一操作有多个规则,则将它们 OR'ed 在一起。

这意味着您allow read, write: if request.auth != null允许任何经过身份验证的用户创建、更新和删除数据库中的任何文档。

如果您只想允许任何经过身份验证的用户创建或更新文档,但只希望具有该特定 UID 的用户删除文档,则必须明确命名这些操作:

allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';

有关完整信息,请参阅有关粒度操作的文档。


推荐阅读