Правила Firebase, позволяющие пользователям получать доступ только к определенному документу c (без какой-либо аутентификации) - PullRequest
0 голосов
/ 26 мая 2020

Я создаю веб-приложение, используя firestore , я хочу, чтобы пользователь создал документ firestore и поделился идентификатором документа в виде ссылки на кого-то (example.com/id?1z32AWS5Wqt5DBlHnCm0), чтобы человек, у которого есть ссылка также может просматривать и обновлять этот документ firestore.

Обратите внимание, что аутентификация не требуется , любой может создать документ и отправить кому-нибудь ссылку. При необходимости я также могу использовать опцию анонимного входа (signInAnonymously()).

Теперь мне нужно написать правила базы данных в:

  1. Предотвратить пользователи могут выполнять поиск по всей коллекции, чтобы найти все другие документы в коллекции, т. е. используя метод .get() для создания querysnapshot, а затем перебирают его, чтобы найти все документы.

  2. Разрешить пользователям просматривать и обновлять только ту коллекцию, для которой у них есть идентификатор коллекции.

1 Ответ

1 голос
/ 26 мая 2020

1 возможно при разрешении только get доступа, но не list. read - это и get, и list, поэтому вам нужно четко указать, что разрешен только метод get. О детальных разрешениях читайте в документации .

2 на самом деле невозможно. Просто зная название коллекции, любой может попытаться получить к ней доступ. Вы не можете надежно "защитить паролем" коллекцию. Вы должны придумать некоторые ограничения для пользователя, использующего аутентификацию Firebase, чтобы контролировать доступ.

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