Как читать / записывать конкретные данные в Firestore - PullRequest
0 голосов
/ 10 ноября 2018

У меня возникли проблемы с READ rules Firestore в настоящее время

Вот моя структура данных

{
  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 и birthday, только если request.auth.uid != null && request.auth.uid == uid, тогда как username и photo должны быть доступны для чтения каждый пользователь?

Спасибо, <3 </p>

1 Ответ

0 голосов
/ 10 ноября 2018

В Firstore отсутствует контроль доступа к полям для чтения полей документа. Самая гранулированная единица доступа - это документ. Пользователь либо имеет полный доступ для чтения документа целиком, либо у него нет доступа вообще.

Если вам нужно изменить доступ для каждого поля, вам придется разделить поля документа на несколько коллекций, причем каждая коллекция имеет контроль доступа, соответствующий полям документов внутри. Распределение публичных и частных данных, как это, очень распространено.

...