У меня есть приложение со следующими характеристиками:
- Каждый может читать данные (общедоступные)
- Администраторы (аутентифицированные пользователи) имеют полный доступ (чтение, запись)
- Пользователи могут создавать счета
- Данные счетов не являются общедоступными
Вот правила безопасности, которые я придумал:
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.
.
Я явно что-то делаю не так, буду признателен за любые советы по этому поводу.