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

如何在C#(Xamarin.Forms)中用FirebaseDatabase.net连接Local Emulator Suite取数?

解决Local Emulator Suite的C#数据访问问题

1. 修正REST API访问格式

你之前的REST URL格式错误,模拟器不支持?ns=参数传递数据库名,正确的URL结构是:

http://127.0.0.1:9000/NAMESPACE_NAME.json

替换NAMESPACE_NAME为你的目标数据库名称,即可正常请求数据。

2. C#代码调整(分两种常用库)

情况一:使用第三方FirebaseDatabase.net库

初始化FirebaseClient时,需将数据库名作为URL路径的一部分,而非查询参数;同时模拟器不需要真实认证令牌,提供一个虚拟值即可:

var firebaseClient = new FirebaseClient(
    "http://127.0.0.1:9000/NAMESPACE_NAME",
    new FirebaseOptions
    {
        AuthTokenAsyncFactory = () => Task.FromResult("local-emulator-token")
    });

var data = await firebaseClient.Child("Theme_1/theme_name").OnceSingleAsync<string>();

情况二:使用官方Firebase Admin SDK

初始化Admin SDK时直接指定模拟器的数据库URL:

// 初始化Firebase App
FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
    DatabaseUrl = "http://127.0.0.1:9000/NAMESPACE_NAME"
});

// 读取数据
var db = FirebaseDatabase.DefaultInstance;
var dataRef = db.GetReference("Theme_1/theme_name");
var snapshot = await dataRef.GetValueAsync();
var data = snapshot.Value?.ToString();

3. 额外检查项

  • 确认数据库模拟器确实在9000端口运行(可在Local Emulator Suite控制台查看端口状态)
  • 确保本地防火墙未拦截127.0.0.1:9000的HTTP请求
  • 若代码默认使用HTTPS,需强制切换为HTTP(模拟器仅支持HTTP)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:43:28