Различные правила безопасности для разных коллекций Firestore - PullRequest
0 голосов
/ 24 февраля 2019

В настоящее время я впервые использую Firestore и пытаюсь немного понять правила безопасности.Теперь мой вопрос очень прост, и я мог бы найти ответ, сделав немного больше исследований, но я хотел быть уверен, что я поступаю правильно, поэтому я подумал, что было бы лучше просто спросить здесь.

Если бы в Firestore было две коллекции, одна из которых называлась "A", а другая - "B", какими были бы мои правила безопасности, если бы я хотел, чтобы только аутентифицированные пользователи читали, писали, обновляли, удаляли ... в A и всех остальных.читать в B, но только аутентифицированным пользователям писать, обновлять, удалять ... в B.

Редактировать: Вот текущие правила, к которым они применяют правила для B ко всем коллекциям:

service cloud.firestore {
   match /databases/{database}/documents {
      match /{document=**} {
        allow read: if true;
        allow write: if request.auth.uid != null;
      }
   }

}

1 Ответ

0 голосов
/ 24 февраля 2019

Если вы посмотрите на документацию по аутентификации в правилах безопасности , вы найдете следующие правила:

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow the user to access documents in the "cities" collection
    // only if they are authenticated.
    match /cities/{city} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

Изменено для вашего варианта использования, чтобыло бы что-то вроде:

service cloud.firestore {
  match /databases/{database}/documents {
    match /A/{id} {
      allow read, write: if request.auth.uid != null;
    }
    match /B/{id} {
      allow read;
      allow write: if request.auth.uid != null;
    }
  }
}
...