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

如何通过Rest Client API从Firebase数据库获取指定全量用户数据

实现一次请求获取所有用户数据并排除指定字段

要通过Firebase REST API在Unity中一次获取所有用户数据并排除Project字段,你可以利用Firebase Realtime Database的字段投影功能,结合Rest Client来实现:

1. 构造请求URL

去掉单个用户的getLocalId路径,直接访问根节点,同时通过fields参数指定需要返回的所有字段(排除Project)。假设你的用户数据包含username、email、avatarUrl等字段,URL格式如下:

databaseURL + ".json?auth=" + idToken + "&fields=username,email,avatarUrl"

如果用户字段较多或不固定,这种方式不方便的话,可以先获取全量数据再在客户端过滤(但会传输更多数据,按需选择)。

2. Unity C#代码实现

使用Rest Client发起GET请求,接收所有用户的字典数据(返回结果为多个用户的键值对):

// 构造请求URL,示例保留username、email字段,排除Project
string requestUrl = $"{databaseURL}.json?auth={idToken}&fields=username,email";

RestClient.Get<Dictionary<string, User>>(requestUrl).Then(response =>
{
    // response.Data 是所有用户的字典,key为用户localId,value为已排除Project字段的User对象
    foreach (var userEntry in response.Data)
    {
        string userId = userEntry.Key;
        User userData = userEntry.Value;
        // 处理用户数据逻辑
    }
});

注意:你的User类需要移除Project属性,或者用[JsonIgnore]标记该属性,否则反序列化时会因API返回无此字段而报错。

备选方案:客户端过滤

如果无法提前确定要保留的字段,或字段频繁变动,可以先获取全量用户数据,再在客户端过滤:

RestClient.Get<Dictionary<string, FullUser>>(databaseURL + ".json?auth=" + idToken).Then(response =>
{
    // 转换为排除Project字段的User对象集合
    var filteredUsers = response.Data.ToDictionary(
        entry => entry.Key,
        entry => new User 
        { 
            Username = entry.Value.Username,
            Email = entry.Value.Email
            // 复制其他需要保留的字段
        });
    
    // 处理过滤后的用户数据
});

这里FullUser是包含Project字段的完整类,User是排除该字段的精简类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:25:23