FiRestore安全规则获取函数错误 [英] Firestore security rules get function error

查看:15
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆