仅当UID与Firebase Firestore中的集合名称匹配时,才如何读取集合?

时间:2019-05-05 12:15:41

标签: firebase google-cloud-firestore firebase-security-rules

我为每个用户创建了一个用户ID集合,并且我希望设置数据库规则以仅在用户ID与收集项目名称匹配时才读取该收集项目。 我尝试过类似的事情:

 service cloud.firestore {
    match /databases/{database}/documents {
      match /{document=**} {
        allow read: if request.auth != null;
      }
      match /{userId} {
        allow read: if belongsTo(userId);
      }
      function belongsTo(userId) {
        return request.auth.uid == userId
      }
    }
    }

1 个答案:

答案 0 :(得分:1)

Firestore读取文档。没有阅读收藏的概念。因此,您的规则必须提供对文档的访问权限。

要授予对以用户的UID命名的集合中所有文档的访问权限,请执行以下操作:

  match /{userId}/{document} {
    allow read: if belongsTo(userId);
  }