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

.NET MAUI macOS应用无法读取Firebase凭据文件问题求助

.NET MAUI macOS平台无法找到Firebase凭据文件的解决方案

问题根源

Windows平台默认会自动复制标记为内容的文件到输出目录,但macOS的MAUI应用包结构不同,需要明确配置文件属性;同时AppDomain.CurrentDomain.BaseDirectory在macOS环境下的指向无法正确定位到资源文件,导致凭据文件找不到。

解决方案

1. 确保凭据文件被正确复制到输出目录

  • 在Visual Studio中选中你的Firebase JSON凭据文件,右键选择「属性」
  • 设置生成操作为 Content
  • 设置复制到输出目录为 如果较新则复制 或 始终复制

2. 修正路径获取逻辑

替换AppDomain.CurrentDomain.BaseDirectory为MAUI官方推荐的FileSystem.AppDataDirectory,该路径在各平台都指向应用可读写的目录:

string credentialsPath = Path.Combine(FileSystem.AppDataDirectory, "giogo-dee69-firebase-adminsdk-fsksp-1cf7a95106.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", credentialsPath);

3. 可选:将凭据文件作为嵌入资源(更可靠)

如果上述方法仍有问题,可以将文件嵌入到程序集中,彻底避免路径依赖:

  1. 设置文件的生成操作为 Embedded resource
  2. 使用以下代码读取并写入到可访问目录:
try
{
    var assembly = typeof(App).Assembly;
    // 注意:资源名称格式为「项目命名空间.文件名」,需根据实际情况调整
    string resourceName = "TestFirebase.giogo-dee69-firebase-adminsdk-fsksp-1cf7a95106.json";
    string outputPath = Path.Combine(FileSystem.AppDataDirectory, "giogo-dee69-firebase-adminsdk-fsksp-1cf7a95106.json");

    // 将嵌入资源复制到可访问目录
    using (Stream inputStream = assembly.GetManifestResourceStream(resourceName))
    using (Stream outputStream = File.Create(outputPath))
    {
        inputStream.CopyTo(outputStream);
    }

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", outputPath);

    // 初始化Firestore并执行操作
    FirestoreDb db = FirestoreDb.Create("giogo-dee69");
    DocumentReference coll = db.Collection("NomeCollezione").Document("Capoccione");
    Modello DaInserire = new Modello { Username = "Picciotto", NumeroCapelli = 19 };
    await coll.SetAsync(DaInserire);
}
catch (Exception ex)
{
    Console.WriteLine("Errore di connessione a Firestore: " + ex.Message);
}

验证方法

运行应用后,可检查macOS应用包内的TestFirebase.app/Contents/MonoBundle目录是否存在该JSON文件,或者查看FileSystem.AppDataDirectory指向的路径下是否有文件生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:40:00