Firebase验证详细信息

Firebase验证详细信息,firebase,Firebase,有没有办法找到在Firebase中保存数据失败的真正原因?现在,似乎任何数据验证问题或安全问题都会导致“权限被拒绝”错误 这不是特别有用。这是否意味着用户无效?这是否意味着用户没有在某处写入的权限?这是否意味着属性“accountName”必须大于2个字符,小于500个字符 权限被拒绝意味着用户没有权限 肯定有办法找出验证失败的原因吗?通常,您可以在帐户仪表板的“模拟器”选项卡下调试Firebase安全规则。首先,使用与您在客户端上相同的用户权限登录。您只需要包含由安全规则访问的规则,例如id或

有没有办法找到在Firebase中保存数据失败的真正原因?现在,似乎任何数据验证问题或安全问题都会导致“权限被拒绝”错误

这不是特别有用。这是否意味着用户无效?这是否意味着用户没有在某处写入的权限?这是否意味着属性“accountName”必须大于2个字符,小于500个字符

权限被拒绝意味着用户没有权限


肯定有办法找出验证失败的原因吗?

通常,您可以在帐户仪表板的“模拟器”选项卡下调试Firebase安全规则。首先,使用与您在客户端上相同的用户权限登录。您只需要包含由安全规则访问的规则,例如id或uid。通常是这样的:

然后,您可以输入您试图在客户端写入的有效负载,并查看哪些规则失败:


通过创建自定义身份验证令牌并将
debug:true
添加到配置设置中,可以在客户端上实现类似的行为。但这是我的

不幸的是,这并没有真正的帮助。我不打算在测试控制台中调试。更重要的是,在一个真正的应用程序中,当用户提交了我在本地错过的无效内容时,我需要服务器告诉我出了什么问题。我遇到(或创建)的每个API都会这样做。很抱歉,您不喜欢这个答案。然而,这是如何发现安全规则失败的。使用模拟器或使用特殊的身份验证令牌。没有其他选择,对终端用户隐藏应用程序的内部安全层也不是特别少见。事实上,这是一种可靠的安全实践。因此,无法区分客户端上的验证错误和权限错误?此方法仅适用于非常简单的情况。我不认为模拟器可以用来调试多路径更新,因为它只允许您指定一个位置。更高级的应用程序使用多路径更新作为保证数据库完整性的一种方式,我们有规则来确保每个路径中的数据是一致的。@通过模糊性实现加藤安全不是一种可靠的安全实践。