【问题标题】:firestore security rules request.auth.uid == userId kept returning 'Simulated read denied'firestore 安全规则 request.auth.uid == userId 不断返回“模拟读取被拒绝”
【发布时间】:2019-11-18 00:39:04
【问题描述】:

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

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

您是否部署了安全规则?

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

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

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

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

如果 request.auth.uid != null;

这是我的测试截图-

【问题讨论】:

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


    【解决方案1】:

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

    顺便说一句:您无需部署规则即可在模拟器中对其进行测试。您可以选择仅在测试后才部署它们。

    【讨论】:

    • 那行得通。感谢您回答这个问题。
    • 谢谢!这让我浪费了大约一个小时试图弄清楚为什么当我将默认规则扩展为每个集合的多个规则时它突然停止工作。
    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 2022-01-21
    • 2018-05-28
    • 1970-01-01
    • 2019-06-16
    • 2019-03-05
    • 2016-11-27
    • 1970-01-01
    相关资源
    最近更新 更多