【发布时间】:2020-11-21 16:13:08
【问题描述】:
我正在开发一个基于 Firestore 数据库的小型 Web 应用程序,我只想让某些用户访问(读取和写入)数据。它可能是 15 或 20 个 UID。我在根级别创建了一个名为“白名单”的集合,其中每个文档都有用户的 UID 和几个字段,其中包含用户 ID、用户名和用户电子邮件。
然后我写了我的规则如下:
service cloud.firestore { match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null && data.child('whitelist').hasChild(auth.uid);
} } }
但是,我已尝试与我自己的用户一起查看它是否有效,即使白名单集合中有一个文档,用户也无法阅读任何内容。我做错了什么?
【问题讨论】:
-
您可以将它们插入数据库的集合中,然后在规则中检查它是否存在于该集合中,或者您可以使用它们的 UID 创建对象,然后只允许访问那些 UID 匹配的对象
-
@ErayIsmailov 我已经有一个名为 users 的集合,其中有这些用户。它们中的每一个都是该集合中的一个文档。我该怎么做?