Небольшое отклонение от Отличный ответ Дуга состоит в том, чтобы позволить всем пользователям писать в конкретные документы, которые уже существуют и в которых невозможно угадать имена. Эти имена документов затем становятся вашими собственными API-ключами, которыми вы делитесь (вне диапазона) с пользователями вашего приложения.
Правила безопасности для этого могут быть такими простыми:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow create: if false;
allow update: if exists(resource['__name__']);
allow get: if true;
allow list: if false;
}
}
}
Итак: любой может получить / обновить любой существующий документ, имя которого он знает, но он не может создатьдокумент, а также получить список всех документов.
Это исключает необходимость использования проверки подлинности Firebase. С другой стороны, это означает, что вы не можете заблокировать доступ для каждого пользователя. Любой пользователь, который каким-либо образом получает доступ к имени документа, теперь может читать / писать его по своему желанию.