Использование resource.data в правилах Firestore - PullRequest
0 голосов
/ 05 июня 2018

У меня есть следующие правила Firestore:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
        allow read: if true;
    }
    match /institutions/{institution}/watches/{watch} {
      allow read, update, delete: if request.auth.email == resource.data.email;
      allow create: if request.auth.email != null;
    }
  }
}

По сути, я бы хотел, чтобы любой документ в /institutions/{institution}/watches был доступен для чтения / обновления / удаления, если и только если электронная почта в документеидентичны электронной почте пользователя.Однако, когда я запускаю это через симулятор с примером документа, я не могу заставить работать контроль доступа, и я также получаю ошибку отказа в разрешении на клиенте API.

Есть ли способ отладки этогодальше / чего-то не хватает в моих правилах?

1 Ответ

0 голосов
/ 18 августа 2018

Я считаю, что request.auth.email должно быть request.auth.token.email.См https://firebase.google.com/docs/reference/rules/rules.firestore.Request#auth.

...