cod*_*der 3 firebase firebase-security reactjs google-cloud-firestore
我有一个包含两个集合的 firestore 数据库:“notes”,其中每个文档存储每个注释的内容和authorId(对应于当前登录的用户 uid),以及“users”,其中存储用户的名称每个文档的id就是用户的uid。这样,注释的作者就可以连接到 firestore 中的用户。我正在尝试制作一个 Web 应用程序,其中仅显示用户创建的注释(authorId == uid),而不显示其他注释。
我尝试将resource.data.authorId和request.resource.data.authorId与request.auth.uid进行比较。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /notes/{note}{
allow read: if request.auth.uid == resource.data.authorId;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我只想显示用户创建的注释,但使用此规则根本不显示任何注释。
我的快速猜测是您的代码正在尝试从集合中读取所有文档,并且您希望安全规则来过滤数据。Firebase 安全规则并非如此。它们本身不会过滤数据,而只是检查以确保允许任何读取操作。
这意味着要仅允许安全访问用户自己创建的文档,您需要:
您的安全规则似乎执行第二位,因此您所需要做的就是将该查询写入您的应用程序代码中。
有关这方面的更多信息,请参阅有关安全查询数据的文档。
| 归档时间: |
|
| 查看次数: |
2538 次 |
| 最近记录: |