【发布时间】:2018-07-21 12:18:39
【问题描述】:
我在使用 Firestore 规则时遇到的一个大问题是,使用 Firebase 控制台中的模拟器来模拟数据库访问与我从客户那里看到的行为不符。现在我偶然发现了一个我似乎无法解决的问题。
问题
模拟器中的以下语法工作正常:
allow create: if request.writeFields.hasAll(["a", "b", "c"]);
当从我的 Android 客户端使用 完全相同 字段请求时,我得到 Error performing setData, PERMISSION_DENIED: Missing or insufficient permissions.。
请求(简化)如下所示:
通过设置allow create;(简化),我已验证并确定问题必须与request.writeFields 相关,因为我的请求(仅来自我的真实客户)一旦添加相关逻辑就会失败。
在我的所有测试中允许模拟数据访问。
我的参考是List interface。
问题
我想知道我是否遗漏了有关 writeFields(可能与 allow create 相关联)的信息,以及我如何经常看到模拟访问和真实访问之间的差异。
请记住,我的语法在模拟器中运行良好,但包含完全相同的 JSON 数据的真实请求会失败。
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security