You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Realtime Database权限拒绝问题排查(Pyrebase4+Kivy)

问题分析与解决

核心问题

你遇到的权限拒绝错误,是因为Pyrebase4的数据库操作没有携带用户认证的Token,导致Firebase规则判断auth为null,触发Permission denied。虽然你已经完成了用户登录,但默认情况下,Pyrebase的数据库实例不会自动关联当前登录用户的认证信息。

解决方案

1. 初始化数据库时传入认证Token

在获取数据库实例时,将登录返回的idToken传入,这样后续所有数据库操作都会自动带上认证信息:

# 原代码
db = firebase.database()
# 修改为
db = firebase.database(user=log_in['idToken'])

2. 或在单个请求中携带Token

如果只需要在特定请求中认证,也可以在get()方法里添加params参数:

user_info = db.child("users").child(uid).get(params={'auth': log_in['idToken']})

3. 修复数据库规则的语法问题(可选)

你的规则里最后一行.write": "auth != null",多了一个冗余逗号,虽然Firebase通常能兼容,但可能导致规则解析异常,建议修正为:

{
  "rules": {
    "users": {
      ".read": "auth != null",
      ".write": "auth != null"
    }
  }
}

验证逻辑

修改后,数据库请求会携带用户的idToken,Firebase会验证Token有效性,并将auth对象注入规则判断,此时auth != null条件成立,即可正常读取数据。

内容的提问来源于stack exchange,提问作者Airton Joao Tassin Junior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:30:15