firestore安全规则request.auth.uid == userId始终返回“模拟读取被拒绝”

时间:2019-07-08 13:24:06

标签: firebase google-cloud-firestore firebase-authentication firebase-security-rules firebase-console

我正在尝试获取request.auth.uid == userId进行测试,但是我正在获得“模拟读取被拒绝”。

在输入此问题之前,我检查了所有基本问题-

enter image description here

您是否部署了安全规则?

我通过Fireconsole部署了规则(单击“发布”按钮并等待分钟)。

您是否已使用Firebase身份验证登录?

我还没有实现这项工作,我正在尝试通过在控制台中使用模拟器来测试安全规则。

我在下面尝试了基本规则,效果很好。

如果request.auth.uid!= null;

enter image description here

这是我测试的屏幕截图-

enter image description here

1 个答案:

答案 0 :(得分:2)

使用安全规则模拟器时,您需要输入要阅读的文档的完整完整路径。您不能使用通配符。目前,您正在尝试在文档路径中使用通配符:“ / users / {userId}”这将行不通。这使规则中的userId变量从字面上变为字符串“ {userId}”。您需要做的是将要测试以读取的文档的实际ID粘贴到表单中。这将是以“ JoF”开头的UID。

顺便说一句:您不需要部署规则即可在模拟器中对其进行测试。您只有在对它们进行测试之后,才能选择部署它们。