FiRestore安全规则获取函数错误 [英] Firestore security rules get function error
本文介绍了FiRestore安全规则获取函数错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当用户注册时,应用程序使用为Firebase身份验证生成的相同uid将用户保存在FiRestore中。现在,我尝试为单独的集合(而不是用户集合)编写一个安全规则,其中仅当请求者的isAdmin字段设置为真时,才允许对该请求者执行读和写操作。正如您在图像上看到的,即使get()函数中的路径是正确的,我也得到了一个不存在的错误。可能导致此错误的原因是什么?
我尝试了许多不同的路径,更改了集合,所有内容都小写等。我在Google中找不到任何关于这方面的内容,官方文档显示的用法与我使用它的方式相同。
安全规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /user/{user} {
allow read,write: if true
}
match /akarmi/{akarmiId} {
allow read, write:
if get(/databases/$(database)/documents/user/$(request.auth.uid)).data.isAdmin == true
}
}
}
我希望此代码能够运行并允许或不允许访问,而不会引发不存在的错误。
推荐答案
您必须设置真实的Firebase UID才能使用模拟器,实际的UID解决了问题,错误消息非常具有误导性。
这篇关于FiRestore安全规则获取函数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文