我面对两个问题:
由于上面的问题,我放弃了HashMap方法,我正在尝试探索数组。有没有办法通过request.auth.token.email获取登录用户的电子邮件,并将其与文档中数组的' email‘元素进行比较?
例如,我有'bb@gmail.com‘作为登录用户,我想要获取'sharedWith’数组包含'bb@gmail.com‘作为条目的所有文档,并忽略其余文档。我可以在代码中实现它,但我希望将这种安排设置为“安全规则”,以使读取文档更可靠。
-更新-我在安全规则中尝试了拆分和连接,如下所示:(参考:Using the replace function in firestore security rules)
true允许读取: if isSignedIn() && resource.data.sharedWith(request.auth.token.email).split('.').join(',') in“
”;
我的疑问如下:
db.collection("Sites")
.whereEqualTo("sharedWith.bb@gmail,com","true")
我的文档包含以下内容:
sharedWith
mm@gmail,com : "true"
bb@gmail,com : "true"
并且用户以'bb@gmail.com‘身份登录
上面的设置不起作用。我收到权限被拒绝的错误。我不知道我做错了什么,请帮帮忙。
https://stackoverflow.com/questions/54993682
复制相似问题