Как ограничить длину строки в firebase - PullRequest
0 голосов
/ 22 ноября 2018

Я работаю в базе данных Firebase.Мне нужно ограничить длину строкового поля.Как мне это сделать?

Путь к полю:

Col1 / doc1 / / / description

То есть начиная сcollection col1, затем в doc1, затем для всех коллекций в doc1 и всех документов в этой коллекции поле описания должно быть ограничено 100 символами.

Может кто-нибудь объяснить, как мне это сделать?Спасибо

1 Ответ

0 голосов
/ 23 ноября 2018

Для Cloud Firestore вы можете проверить , что поле description не длиннее 100 символов с:

service cloud.firestore {
  match /databases/{database}/documents {
    match /col1/doc1 {
      allow write: if resource.data.description.length <= 100;

        match /subcollection1/{doc=**} {
          allow  write: if resource.data.description.length <= 100;
        }
    }
  }
}

Это относится к col1/doc и всем документам в subcollection1.Обратите внимание, что эти правила не будут ограничивать длину описания, поскольку правила безопасности не могут изменять записываемые данные.Вместо этого правила отклоняют записи, где описание длиннее 100 символов.

Нет никакого способа (о котором я знаю) применять правила к каждой вложенной коллекции только одного документа.Самое близкое, что я знаю, это применить его ко всем документам и их подколлекциям:

match /col1/(document=**} {
  allow write: if resource.data.description.length <= 100;
}

Это относится к валидации ко всем документам в col1 и ко всем подколлекциям под этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...