Я хочу написать правило, которое не позволит добавить тот же документ во второй раз - PullRequest
0 голосов
/ 03 июля 2019
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{usersID} {
    allow read;
    allow write: if request.auth.uid != null;
        match /desksCollection/{desksCollectionID} {
        allow read;
        allow write: if resource.data.DeskName != request.resource.data.DeskName;
      }
    }
  }
}

Я хочу написать правило, которое не позволит добавлять один и тот же документ во второй раз. Что здесь не так?

1 Ответ

0 голосов
/ 06 июля 2019

То, что вы пытаетесь сделать, невозможно с правилами безопасности.Это потребует от вас выполнения запроса на desksCollection для документов, которые соответствуют критериям наличия поля с определенным значением.Однако выполнение запросов в правилах безопасности невозможно.Вы можете получить документ по его идентификатору, но это вам здесь не поможет, потому что вы не знаете, какой документ выбрать.

Если вам требуется, чтобы deskName было уникальным, рассмотрите возможность использования этого значения в качествеИдентификатор документа.Затем вы можете написать правило для предотвращения обновлений, если документ уже существует.

...