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

Unity C# WebGL中如何从Firebase实时数据库读取用户UUID

Firebase Realtime Database获取用户UUID返回空的解决方案

核心问题分析

你的代码返回空,大概率是以下几个原因:

  • 数据结构不匹配:Firebase Realtime Database中users节点通常以**键值对(字典)**存储用户UUID(键就是UUID),但你用GetArray<users>尝试按数组解析,导致解析失败返回空。
  • 数据库权限限制:当前idToken对应的用户没有读取users节点的权限。
  • 模型类users定义错误:模型字段和数据库中用户节点的结构不匹配,导致解析失败。

修复方案

方案1:直接提取UUID列表(仅需UUID时用)

修改GetData方法,用Dictionary<string, object>接收数据,提取字典的键(即UUID):

public void GetData()
{
    RestClient.Get<Dictionary<string, object>>(databaseURL + "users.json?auth=" + idToken)
        .Then(res => {
            List<string> userUuids = new List<string>(res.Keys);
            string uuidList = string.Join("\n", userUuids);
            this.LogMessage("用户UUID列表", uuidList);
        })
        .Catch(err => this.LogMessage("错误", err.Message));
}

方案2:解析完整用户数据(需要用户详情时用)

先确保你的User模型类和数据库中用户节点的字段匹配,比如:

// Models/User.cs
public class User
{
    public string name;
    public string email;
    // 其他你存储的用户字段
}

然后修改GetData方法,用Dictionary<string, User>接收:

public void GetData()
{
    RestClient.Get<Dictionary<string, User>>(databaseURL + "users.json?auth=" + idToken)
        .Then(res => {
            StringBuilder sb = new StringBuilder();
            foreach (var kvp in res)
            {
                string uuid = kvp.Key;
                User user = kvp.Value;
                sb.AppendLine($"UUID: {uuid}, 用户名: {user.name}");
            }
            this.LogMessage("用户数据", sb.ToString());
        })
        .Catch(err => this.LogMessage("错误", err.Message));
}

额外排查步骤

  1. 验证数据结构:在浏览器中直接访问https://xxx.firebaseio.com/users.json?auth=你的有效idToken,查看返回的JSON是数组还是字典,确认结构是否和代码解析方式匹配。
  2. 检查数据库规则:登录Firebase控制台,进入Realtime Database的「规则」页面,确保规则允许当前用户读取users节点,比如:
    {
      "rules": {
        "users": {
          ".read": "auth != null" // 根据需求调整权限,比如仅管理员可读取
        }
      }
    }
    
  3. 确认idToken有效性:打印idToken值,确保从SignUpData中正确获取,也可以通过Firebase Admin SDK的verifyIdToken接口验证token是否有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:42:22