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

如何通过FirebaseAdmin在C#服务端访问Firebase Firestore数据库

解决方案

1. ServiceAccountKey 路径配置方案

  • 本地开发配置:将下载的serviceAccountKey.json文件放到C#项目根目录,右键文件选择「属性」,将「复制到输出目录」设置为如果较新则复制,此时代码中路径可以直接写文件名:
Credential = GoogleCredential.FromFile("serviceAccountKey.json")
  • 相对/绝对路径通用规则:如果文件存放在其他位置,可传入绝对路径(如@"C:\keys\serviceAccountKey.json"),或是基于程序运行目录的相对路径,避免硬编码路径可通过配置文件读取路径值。
  • 生产环境配置:推荐将密钥内容存入服务环境变量,改用GoogleCredential.FromJson(Environment.GetEnvironmentVariable("FIREBASE_SERVICE_ACCOUNT"))加载,避免密钥文件泄露。

注意:你现有代码中的ServiceAccountId参数无需手动赋值,服务账号密钥文件已包含对应信息,可直接删除该行配置。

2. 访问Firestore数据库实例

初始化FirebaseApp完成后,直接通过FirestoreDb类获取实例即可操作:

// 初始化FirebaseApp(修正配置后的示例)
AppOptions appOptions = new AppOptions()
{
    Credential = GoogleCredential.FromFile("serviceAccountKey.json"),
    ProjectId = "你的Firebase控制台项目ID" // 注意不是自定义的应用名,需和控制台项目ID一致
};
var firebaseApp = FirebaseApp.Create(appOptions);

// 获取Firestore实例
FirestoreDb db = FirestoreDb.Create("你的Firebase项目ID", firebaseApp);

// 操作示例:添加文档
DocumentReference docRef = db.Collection("你的集合名").Document("文档ID");
await docRef.SetAsync(new { Name = "测试数据", Value = 123 });

3. 访问实时数据库(RTDB)实例

你现有代码中配置的baseURL需要填入AppOptions的DatabaseUrl参数,初始化后调用FirebaseDatabase类获取实例:

AppOptions appOptions = new AppOptions()
{
    Credential = GoogleCredential.FromFile("serviceAccountKey.json"),
    ProjectId = "你的Firebase控制台项目ID",
    DatabaseUrl = "https://你的RTDB名称.firebaseio.com/" // 对应你代码中的baseURL,注意要加https前缀
};
var firebaseApp = FirebaseApp.Create(appOptions);

// 获取实时数据库实例
FirebaseDatabase rtdb = FirebaseDatabase.GetInstance(firebaseApp);

// 操作示例:读取数据
DatabaseReference dbRef = rtdb.GetReference("sample-default-rtdb"); // 对应你代码中的表名
var snapshot = await dbRef.GetValueAsync();
var data = snapshot.Value;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:09:02