В Firestore не могу создать правило, чтобы избежать перезаписи - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь избежать перезаписи, каков наилучший способ сделать правила?

Это правило не работает

service cloud.firestore {
  match /databases/{database}/documents {
    match /audio/{title} {
      allow read;
      allow write: if request.resource.data.id != resource.data.id;
    }
  }
}

Я попробовал это правило, и оно не сработало request.resource.id != resource.id;

1 Ответ

0 голосов
/ 01 мая 2018

Ознакомьтесь с документацией Правила безопасности . В частности, раздел об операторе allow.

В Cloud Firestore есть три операции записи: create, update и delete. Они соответствуют set(), add(), update(), Методы remove() и transaction() в клиентских библиотеках. Для тебя удобство операции записи позволяет все это.

// Writes are divided into create, update, and delete operations
allow create, update, delete: if <condition>;

// This is equivalent to using the write operation
allow write: if <condition>;

Здесь вы увидите, что allow write - это удобное сокращение для всех 3 типов мутаций. В вашем случае вы захотите что-то вроде:

allow create: if <condition>;
allow update, delete: if false;
...