Firebase 安全规则完全打开,但仍然授予权限被拒绝错误
Posted
技术标签:
【中文标题】Firebase 安全规则完全打开,但仍然授予权限被拒绝错误【英文标题】:Firebase Security Rules completely open but still giving permission denied error 【发布时间】:2018-06-05 23:52:01 【问题描述】:我已经为我的 Firebase 权限编写了这些安全规则,据我所知,这些安全规则应该授予所有经过身份验证的用户读写权限...
"rules":
".read": "auth != null",
".write": "auth != null"
但我的 RTDB 节点上仍然出现这些错误..
[Firebase/Database][I-RDB03812] Listener at /UserVideo/null failed: permission_denied
[Firebase/Database][I-RDB03812] Listener at /users/4eb8920a-e407-4488-bce4-c6f64f7b0891 failed: permission_denied
我已经验证 4eb8920a-e407-4488-bce4-c6f64f7b0891
实际上是用户 uid。我的安全模拟器告诉我,我的 ref/users 和 ref/UserVideo 都允许读取和写入。我错过了什么?
【问题讨论】:
也许您没有通过身份验证?尝试true
而不是"auth != null"
来检查。
我建议您检查甚至发布您的代码 - 特别是您在哪里进行身份验证,并查看在您进行身份验证时它是否返回错误。
请注意,您正尝试将侦听器附加到 /UserVideo/null,这可能是问题的线索。
【参考方案1】:
改用 auth.uid:
"rules":
".read": "auth.uid != null",
".write": "auth.uid != null"
【讨论】:
".read": "auth != null", 是 Firebase 提供的默认设置,因此 auth.uid 不会产生任何影响。以上是关于Firebase 安全规则完全打开,但仍然授予权限被拒绝错误的主要内容,如果未能解决你的问题,请参考以下文章
如何从 swift 代码中应用 firebase 数据库安全规则