Правила Firestore для чтения, обновления и удаления - PullRequest
0 голосов
/ 10 января 2020

Я не разработчик, который ищет руководство по правилам безопасности для проекта Firestore.

Скриншот базы данных Firestore:

enter image description here

Каждый документ в коллекции Swaps должен быть доступен только двум пользователям, дарителю и получателю.

Чтобы иметь возможность создавать новый документ в Swaps коллекция, пользователь должен назначить себя в качестве получателя, что означает, что аутентифицированный ИД пользователя должен совпадать с ReceiverID запроса.

Однако, как дающий, так и получатель должны быть разрешены Обновить, прочитать и удалить документ. Для этого я хочу сопоставить получателя с ReceiverID документа подкачки и подающего с GiverID

rules_version = '2';
service cloud.firestore {
 match /databases/{database}/documents {
    match /Swaps/{document=**} {
      allow read: if request.auth.uid == resource.data.GiverID;
      allow update: if request.auth.uid == resource.data.GiverID;
      allow delete: if request.auth.uid ==resource.data.GiverID;
      allow read: if request.auth.uid == resource.data.ReceiverID;
      allow update: if request.auth.uid == resource.data.ReceiverID;
      allow delete: if request.auth.uid == resource.data.ReceiverID;
      allow create: if request.auth.uid == request.resource.data.ReceiverID; 
    }

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

1 Ответ

1 голос
/ 10 января 2020

Попробуй так:

rules_version = '2';
service cloud.firestore {
 match /databases/{database}/documents {
    match /Swaps/{Swap} {
      allow read: if request.auth.uid == resource.data.GiverID || request.auth.uid == resource.data.ReceiverID;
      allow update: if request.auth.uid == resource.data.GiverID || request.auth.uid == resource.data.ReceiverID;
      allow delete: if request.auth.uid == resource.data.GiverID || request.auth.uid == resource.data.ReceiverID;
      allow create: if request.auth.uid == request.resource.data.ReceiverID; 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...