Может ли приведенное ниже правило безопасности обеспечить уникальность firstName, lastName, username и email перед созданием документа в коллекции профилей?
match /profiles/{document=**} {
allow create: if request.auth.uid != null
&& (request.resource.data.firstName is string && resource.data.firstName != request.resource.data.firstName)
&& (request.resource.data.lastName is string && resource.data.firstName != request.resource.data.firstName)
&& (request.resource.data.username is string && resource.data.username != request.resource.data.username)
&& (request.resource.data.email is string && resource.data.email != request.resource.data.email)
}
Например, ниже приведены данные в профилях коллекции Firestore
{
"document1":{
"firstName":"Jek",
"lastName":"Choo",
"email":"jeksomething@gmail.com",
"username":"jek"
},
"document2":{
"firstName":"Cara",
"lastName":"Choo",
"email":"babycara@gmail.com",
"username":"cara"
}
}
Я хочу создать нижеуказанный новый документ, и в этом доступе на создание должно быть отказано
{
"document3":{
"firstName":"Jek",
"lastName":"Choo",
"email":"jeksomething@gmail.com",
"username":"jek"
}
}
И я хочу создать нижеприведенный новый документ, это должно быть разрешено.
{
"document4":{
"firstName":"example",
"lastName":"com",
"email":"test@example.com",
"username":"example"
}
}
В заключение, может ли указанное выше правило безопасности пожарного хранилища помочь обеспечить уникальность значения поля до того, как документ будет разрешен для создания?