相关疑难解决方法(0)

Firestore安全规则:如何确保文档中值的唯一性?

在配置文件集合中创建文档之前,以下安全规则能否确保名字、姓氏、用户名和电子邮件的唯一性?

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)
}
Run Code Online (Sandbox Code Playgroud)

例如,以下是Firestore收集配置文件中的数据

{
   "document1":{
      "firstName":"Jek",
      "lastName":"Choo",
      "email":"jeksomething@gmail.com",
      "username":"jek"
   },
   "document2":{
      "firstName":"Cara",
      "lastName":"Choo",
      "email":"babycara@gmail.com",
      "username":"cara"
   }
}
Run Code Online (Sandbox Code Playgroud)

我想创建以下新文档,并且此创建访问应该被拒绝

{
   "document3":{
      "firstName":"Jek",
      "lastName":"Choo",
      "email":"jeksomething@gmail.com",
      "username":"jek"
   }
}
Run Code Online (Sandbox Code Playgroud)

我想创建以下新文档,这应该被允许。

{
   "document4":{
      "firstName":"example",
      "lastName":"com",
      "email":"test@example.com",
      "username":"example"
   }
}
Run Code Online (Sandbox Code Playgroud)

总之,上述 firestore 安全规则是否有助于在允许创建文档之前确保字段值的唯一性?

firebase google-cloud-firestore

1
推荐指数
1
解决办法
1045
查看次数

标签 统计

firebase ×1

google-cloud-firestore ×1