如何在Firestore上读取/写入特定数据

时间:2018-11-10 04:43:47

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

我目前对Firestore的READ rules遇到了一些问题

这是我的数据结构

{
  email: example@gmail.com,
  username: geekGi3L,
  birthday: 1995/02/14,
  photo: <firestore-download-url>
}

我当前设置的rules

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{user} {
      allow read;
      allow write: if request.auth.uid != null && request.auth.uid == user;
    }
  }
}

我如何设置rules以允许用户仅在email且{{}时读取{strong>特定字段,例如birthdayrequest.auth.uid != null && request.auth.uid == uid 1}}和username是否应为每个用户可读?

谢谢<3

1 个答案:

答案 0 :(得分:1)

在Firstore中,没有用于读取文档字段的按字段访问控制。访问的最精细的单位是文档。用户或者拥有完全访问权限以完整阅读文档,或者根本没有任何访问权限。

如果需要更改每个字段的访问权限,则必须将文档的字段拆分为多个集合,每个集合都具有适用于其中文档字段的访问控制。像这样在公共数据和私有数据之间进行拆分是很常见的。