firebase - Firestore 安全规则获取功能错误
问题描述
当用户注册时,应用程序会使用为 Firebase 身份验证生成的相同uid将用户保存在 Firestore 中。现在,我正在尝试为单独的集合(而不是用户集合)编写安全规则,其中只有在请求者将isAdmin字段设置为 true时才允许请求者进行读写操作。正如您在图像上看到的那样,即使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
}
}
}
我希望此代码能够运行并允许或禁止访问,并且不会引发不存在的错误。
解决方案
推荐阅读
- vue.js - vue.js 3 如何仅在渲染另一部分后才渲染模板的一部分?
- gcc - 使用覆盖率时的 GCC 9 ICE(内部编译器错误)
- javascript - Ramda:咖喱如何将参数传递给占位符
- algorithm - 确定性地将集合分箱成子集
- mockserver - 验证中的模拟服务器请求正文匹配
- webpack - Webpack 构建失败并出现 ERR_OSSL_EVP_UNSUPPORTED
- c# - 缺少 Google G Suite 证书私钥
- r - 如何更改ggplot中点的颜色
- java - 如果 Collection 不存在,那么它不会抛出错误,为什么?
- html - 如何防止在屏幕阅读器中读取多余的文本?