我面临两个问题:
由于上述问题,放弃使用HashMap方法,我正在尝试探索Arrays。是否可以通过request.auth.token.email获取登录用户的电子邮件并将其与文档中数组的'email'元素进行比较?
例如-我以'bb@gmail.com'作为登录用户,我想获取'sharedWith'数组包含'bb@gmail.com'作为条目的所有文档,而忽略其余的文件。我可以在代码中实现它,但我也想将这种安排设置为“安全规则”,以使阅读文档更加健壮。
---------编辑----------- 我尝试了拆分并加入了我的安全规则,如下所示:
allow read: if isSignedIn() && resource.data.sharedWith[(request.auth.token.email).split('.').join(',')] in ["true"];
我的查询如下:
db.collection("Sites")
.whereEqualTo("sharedWith.bb@gmail,com","true")
我的文档具有以下内容:
sharedWith
mm@gmail,com : "true"
bb@gmail,com : "true"
用户以“ bb@gmail.com”身份登录
以上设置无效。我收到权限被拒绝的错误。