Как читать коллекцию, только если UID соответствует имени коллекции в Firebase Firestore? - PullRequest
0 голосов
/ 05 мая 2019

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

 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 Ответ

1 голос
/ 05 мая 2019

Firestore читает документы. Нет концепции чтения коллекции. Таким образом, ваши правила должны обеспечивать доступ к документам.

Чтобы предоставить доступ ко всем документам в коллекции, названной в честь UID пользователя:

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