email: "userMailId@mail.com"
uId: "firestore_user_Id"
new Message(uId, title, messageBody, timestamp)
目前,我正在尝试将request.auth.uid
与存储在集合中的admins
的id进行匹配:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
allow write: if request.auth.uid == resource.data.uId;
}
}
}
这是写的还是我做错了什么。任何帮助都很感激。
由于管理员的名称在此规则中不可用Allow write:if request.auth.uid==resource.data.uid;
,因此无法查找文档来检查他们是管理员。
您需要一个集合,其中为每个管理员保留一个文档,将他们的UID作为文档键/名称。一旦有了它,就可以使用以下命令检查规则中是否存在这样的文档:
allow write: if exists(/databases/$(database)/documents/admins/$(request.auth.uid));
另请参阅有关访问其他文档的文档。
将true更改为request.auth.uid!=null后,它会出现错误: 我可以弄清楚获取用户数据,比如:电子邮件和密码或用户id令牌,如何使用用户数据解决上述错误?
我想检查用户的用户名和电话号码是否唯一。我已经用FirebaseFirestore实现了它。getInstance()。集合(“用户”)。whereEqualTo(“电话”,ph)。get()。addOnCompleteListener(…) 这是我的firestore规则: 代码运行良好,没有问题。我在使用方法和请求之前检查这个。啊。uid将始终为空。要使代码工作,我必须保持
null 基本上数据结构如下所示: 问题是,我应该写什么安全规则来允许用户只在他们所属的组中(拥有组密钥)读取、创建和更新数据?同时,如何禁止用户找出其他群组的密钥?
我是firestore数据库的新手,我已经在android studio中开发了一个应用程序来访问firestore数据库中的数据。我的应用程序有两种类型的用户类别1。管理2。用户我已经使用短信服务提供商的API实现了移动号码认证逻辑。我没有使用谷歌的firebase认证。我不能理解如何编写firestore数据库的规则。 admin-->可以读写所有集合 用户-->可以读取所有集合,但只能写入少
我有一个angular web应用程序,我没有使用Firebase身份验证来登录我的用户,因为它是通过服务完成的。 现在,我的firestore帐户有完全的访问权限,任何人都可以执行任何操作。 我阅读了安全规则的文档,到处都提到了firebase Auth。有没有一种方法来定义规则,而不使用firebase Auth?