相关疑难解决方法(0)

Firestore 安全规则,用于检查字符用户名是否已存在

我的数据库(firestore)中有以下字符集合结构

/characters/{uid}
 - username: string
 - clan: string
 - mana: number
 - health: number
 etc...
Run Code Online (Sandbox Code Playgroud)

我正在尝试/characters/{uid}通过以下逻辑找出安全规则

service cloud.firestore {
  match /databases/{database}/documents {

    // Characters
    match /characters/{characterID} {
      allow create: if isValidUsername();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这里的函数isValidUsername检查各种内容,如长度、特殊字符等......但我无法弄清楚的一件事是如何检查函数内部

确保它request.resource.data.username是唯一的,即不存在于任何其他/characters收藏文档中。

firebase firebase-security google-cloud-firestore

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

Firestore 安全规则:使用 request.resource.data.__field__ != resource.data.__field__ 的成本?

拥有这样的 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)

firebase google-cloud-firestore

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