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

Unity接入Google Play后Firebase实时数据库读取失败问题求助

问题排查及解决方案

1. 优先排查Firebase Realtime Database安全规则

90%以上的「可写入不可读取」问题都是安全规则配置错误导致,按以下步骤验证:

  • 确认对应存储路径已开放read权限,常见错误是只配置了.write规则漏了.read配置,或者read的权限判断条件不满足。
    错误配置示例:
    {
      "rules": {
        "users": {
          "$uid": {
            ".write": "auth != null && auth.uid == $uid"
            // 漏写.read规则,或者.read规则的判断逻辑和write不一致
          }
        }
      }
    }
    
    同用户读写的标准配置参考:
    {
      "rules": {
        "users": {
          "$uid": {
            ".read": "auth != null && auth.uid == $uid",
            ".write": "auth != null && auth.uid == $uid"
          }
        }
      }
    }
    
  • 临时测试可以把规则改为全局公开读写(仅用于验证问题,上线前必须改回权限控制),如果修改后可以正常读取,即可确认是规则问题。

2. 校验读取路径的正确性

  • Firebase Realtime Database的路径是大小写敏感的,确认读取路径和写入路径的拼写、大小写、层级完全一致,比如写入路径是Users/{uid}读取写成users/{uid}就会找不到数据。
  • 读取前打印完整的目标路径日志,和Firebase控制台内实际存储的路径、uid节点做对比,确认没有传错用户id、没有多余斜杠或者缺层级。

3. 补全读取逻辑的异常捕获

大部分失败情况都会抛出明确的异常,但很多代码没有做错误判断导致找不到原因,按以下标准改造读取代码:

dbRef.Child("users").Child(currentUid).GetValueAsync().ContinueWithOnMainThread(task => {
  // 优先判断异常和取消状态
  if (task.IsFaulted) {
    // 这里的异常日志会明确标注是权限问题、路径不存在还是网络问题
    Debug.LogError($"读取失败: {task.Exception.ToString()}");
    return;
  }
  if (task.IsCanceled) {
    Debug.LogError("读取任务被取消");
    return;
  }
  if (task.IsCompleted) {
    DataSnapshot snapshot = task.Result;
    if (snapshot.Exists) {
      // 正常解析数据逻辑
    } else {
      Debug.LogWarning("目标路径无对应数据");
    }
  }
});
  • 如果Logcat中出现Permission denied报错,可100%定位为安全规则配置问题。

4. 验证Auth uid一致性

  • 确认读取时用的uid是FirebaseAuth.DefaultInstance.CurrentUser.UserId,不是Google Play登录返回的独立id,两类id并不互通,用错会导致权限校验不通过。
  • 登录完成后同时打印写入用的uid、当前Auth的uid、Firebase控制台存储的节点uid,三者必须完全一致。

5. 检查SDK初始化时序

  • 确认读取操作执行前,FirebaseApp、FirebaseAuth、FirebaseDatabase均已初始化完成,无初始化失败的报错日志。
  • 不要在Awake生命周期触发读取操作,统一在登录完成的回调中触发读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 23:15:03