Разрешить доступ на чтение к одной указанной коллекции c в Firebase Firestore - PullRequest
0 голосов
/ 05 апреля 2020

В моем приложении android я использую Firebase Firestore для хранения коллекции «имен пользователей», которые необходимо запросить ПЕРЕД тем, как пользователь войдет в систему, чтобы проверить, доступно ли выбранное имя пользователя.

В настоящее время мое Проект имеет 2 основные коллекции: «пользователи» и «имена пользователей». Я пытаюсь разрешить доступ на чтение только в коллекции "usernames". Моя программа дает сбой, потому что, когда я пытаюсь запросить коллекцию «usernames» до того, как пользователь проходит аутентификацию, он говорит, что у меня нет необходимых прав.

Мои правила очень просты c, но мне было интересно, можно изменить их так, чтобы мой проект работал. Правила следующие:

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

Визуальное представление о том, как выглядит база данных пожарного магазина:

enter image description here

1 Ответ

2 голосов
/ 05 апреля 2020

Если вы хотите относиться к коллекции «имен пользователей» иначе, чем ко всем остальным, вызывайте ее по имени и назначайте всем полный доступ на чтение:

    match /usernames/{id} {
      allow read: if true;
    }

Я предлагаю потратить некоторое время на изучение документация по правилам безопасности чтобы лучше понять, как они работают, узнать, как создавать правила самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...