如何调试 Firebase 安全规则/权限

Posted

技术标签:

【中文标题】如何调试 Firebase 安全规则/权限【英文标题】:How to debug Firebase security rules/permissions 【发布时间】:2017-01-17 22:35:05 【问题描述】:

在 Firebase 2 中,用户可以创建自定义令牌并指定调试标志,这反过来会返回大量有关权限的调试信息。在 Firebase 3 中,这似乎已被删除。

有什么办法,也许通过 REST API 来获取这个权限调试数据回到 web (javascript)?尝试通过模拟器调试超过 1k 行的权限文件有时并不完全可行。

【问题讨论】:

【参考方案1】:

我不得不说,我正在为一个项目评估 Firebase,我非常喜欢它,但是安全规则的调试非常痛苦,以至于我真的准备放弃使用它。我只是整理了一些更新来处理,我得到的只是"FIREBASE WARNING: update at / failed: permission_denied "

这是使用 Bolt 使事情更具可读性。并且煞费苦心地通过模拟器测试一切。

【讨论】:

已经有一段时间了,我基本上已经放弃了详细的权限警告。删除它是一个可怕的疏忽。从我所见,他们似乎无意将其带回来。【参考方案2】:

我认为您仍然可以在 Firebase 3 项目中将 Rest API 与来自原始 JWT 令牌生成器的自定义令牌一起使用 - 但您必须使用“已弃用”(但尚未删除)Database Secret。

我在测试 Bolt 编译器时使用它,for example。

【讨论】:

【参考方案3】:

如果您使用 Firestore,您可以致电 firebase.firestore.setLogLevel(Logger.Level.DEBUG)。它对我理解安全规则问题有很大帮助。

【讨论】:

你能稍微扩展一下吗?举个例子?什么定义了 Logger? 抱歉造成混淆,但它似乎仅适用于firestore、details here。我已将答案编辑得更明确。

以上是关于如何调试 Firebase 安全规则/权限的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 安全规则完全打开,但仍然授予权限被拒绝错误

为特定用户提供访问权限的 Firebase 存储安全规则

如何从 swift 代码中应用 firebase 数据库安全规则

Firebase 存储安全规则 400 错误问题“权限被拒绝。无法访问存储桶 xxxxx-****.appspot.com”

Fire Storage Exception([firebase_storage/unauthorized] 用户无权执行所需的操作。)(我的规则是允许读/写)

Firebase 数据库规则关于