Правила безопасности Firestore: разрешить пользователям создавать только документы - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть приложение со следующими характеристиками:

  • Каждый может читать данные (общедоступные)
  • Администраторы (аутентифицированные пользователи) имеют полный доступ (чтение, запись)
  • Пользователи могут создавать счета
  • Данные счетов не являются общедоступными

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

service cloud.firestore {
  match /databases/{database}/documents {
    match /invoices/{id} {
      allow read: if request.auth != null; // only admins can read data
      allow write: if request.auth != null; // only admins can write data (full access)

      allow create; // users can order stuff, hence they can create
    }
    match /{document=**} {
      allow read; // everything else except the invoices is public
      allow write: if request.auth != null; // if you are an admin, you have full access
    }
  }
}

Проблема в том, что при создании счета с this.ref = db.collection('invoices').doc() и получении его идентификатора в БД с this.ref.id, я получаю ошибку Missing or insufficient permissions..

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

...