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

Firebase Realtime Database可写入但无法读取数据该如何解决?

问题根因
  • 安全规则已过期失效:你配置的Firebase Realtime Database规则中,读写权限的生效截止时间戳1633017600000对应公历2021年10月1日,当前时间远超过该阈值,所有来自客户端的读写请求都会被服务端直接拒绝。你观察到的「可以写入新增数据」只是客户端本地缓存的临时表现,实际写入请求并未被服务端持久化存储。
  • 未监听请求失败回调:你当前的代码仅为数据读取请求注册了addOnSuccessListener成功回调,当请求因权限不足被服务端拒绝时,会触发失败回调分支,你未对该分支做监听处理,因此会产生「程序未进入回调逻辑」的错觉。
修复方案
  1. 调整数据库安全规则,测试阶段可临时使用全开放规则调试,生产环境请务必替换为匹配业务场景的精细化权限规则,避免数据泄露风险:
{
  "rules": {
    ".read": true,
    ".write": true
  }
}
  1. 补充请求的异常监听逻辑,方便后续快速定位问题:
val database: FirebaseDatabase = FirebaseDatabase.getInstance()
val myRef: DatabaseReference = database.getReference("Event")
myRef.child(name).get()
    .addOnSuccessListener{
        if(it.exists()){
            status = "checked"
            existsss = true
        } else {
            status = "not match"
        }
    }
    .addOnFailureListener { e ->
        // 可在此处打印错误信息排查问题
        status = "request failed: ${e.message}"
    }

内容的提问来源于stack exchange,提问作者SHU JIUN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:06:04