firestore规则嵌套对象

时间:2017-12-11 13:19:04

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

我正在尝试为Firestore数据库设置规则。

我在设置嵌套对象的规则时遇到了一些麻烦。

数据库结构如下所示:

用户(用户对象的集合)

----- userDocument(文档名称与auth-users uid匹配)

----------------- users(用户的子集合)

------------------------- userdocument(文档名称与auth-users uid匹配)

注意:最后一个userDocument不包含任何引用。

他在主要的用户集合中有自己的文档。

我希望每个用户都对Users集合中的每个用户具有读/写访问权限,这些用户在其用户子集中具有匹配的用户ID。 此外,任何用户都应该能够在数据库上创建新用户,只要他们使用firebase Auth进行身份验证。

我尝试过以下解决方案,它不起作用:

    service cloud.firestore {
  match /databases/{database}/documents {
  match /users/{userId}{
  allow read, write: if exists(/databases/$(database)/documents/users/userId/users/$(request.auth.uid)) || userId == request.auth.uid;
  }
}
}

我需要的是:

  • 从登录用户的用户子集中获取所有文档名称的方法
  • 仅授予对这些用户的访问权限的方法

Example:

用户的子集合中有1个用户,因此用户应该有权读取/写入自己的用户,并且qb2pa1TWXHZr0NZUREealgWrOYb2。

1 个答案:

答案 0 :(得分:1)

我找到了一个有效的解决方案,我希望这有助于将来的某个人。

所有内容都经过全面测试,评论和工作。

UpdateClient