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

启动项目遇FileNotFoundException:缺失Firebase配置JSON文件求助

解决ASP.NET Core项目启动时Firebase密钥文件缺失的FileNotFoundException

错误信息

An error occurred while starting the application.
FileNotFoundException: Could not find file 'D:\UNICEC_BE-master\UniCEC.API\unics-e46a4-firebase-adminsdk-td0dr-86cc1f1def.json'.
System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)

FileNotFoundException: Could not find file 'D:\UNICEC_BE-master\UniCEC.API\unics-e46a4-firebase-adminsdk-td0dr-86cc1f1def.json'.
System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
System.IO.FileStream..ctor(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options)
System.IO.FileStream..ctor(string path, FileMode mode, FileAccess access, FileShare share)
System.IO.File.OpenRead(string path)
Google.Apis.Auth.OAuth2.GoogleCredential.FromFile(string path)
UniCEC.API.Startup.ConfigureServices(IServiceCollection services) in Startup.cs
+
            FirebaseApp.Create(new AppOptions()
System.RuntimeMethodHandle.InvokeMethod(object target, object[] arguments, Signature sig, bool constructor, bool wrapExceptions)
System.Reflection.RuntimeMethodInfo.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(object instance, IServiceCollection services)
Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder+<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)
Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(object instance, IServiceCollection services)
Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder+<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)
Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services, object instance)
Microsoft.AspNetCore.Hosting.GenericWebHostBuilder+<>c__DisplayClass13_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)
Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
Microsoft.Extensions.Hosting.HostBuilder.Build()
UniCEC.API.Program.Main(string[] args) in Program.cs
+
            CreateHostBuilder(args).Build().Run();

这个错误的核心是项目启动时需要加载Firebase Admin SDK的服务账号密钥文件,但指定路径下找不到该文件。以下是解决步骤:

  • 第一步:确认文件路径与存在性
    检查D:\UNICEC_BE-master\UniCEC.API\目录下是否存在unics-e46a4-firebase-adminsdk-td0dr-86cc1f1def.json文件。如果路径有误,直接修正Startup.cs中的文件路径;如果文件不存在,按下一步操作获取。

  • 第二步:获取Firebase服务账号密钥文件

    1. 登录Firebase控制台,找到项目ID为unics-e46a4的项目
    2. 进入项目设置 → 服务账号标签页
    3. 点击生成新的私钥,确认后下载JSON格式的密钥文件
    4. 将下载的文件重命名为unics-e46a4-firebase-adminsdk-td0dr-86cc1f1def.json,并放到D:\UNICEC_BE-master\UniCEC.API\目录下
  • 第三步:配置文件复制属性
    在Visual Studio中选中该JSON文件,右键打开属性面板,将复制到输出目录设置为始终复制或如果较新则复制,确保项目启动或发布时文件能同步到输出目录,避免运行时找不到。

  • 第四步:优化路径配置(可选但推荐)
    避免硬编码文件路径,改用配置文件管理:

    1. 在appsettings.json中添加Firebase配置项:
      "FirebaseSettings": {
        "ServiceAccountFilePath": "unics-e46a4-firebase-adminsdk-td0dr-86cc1f1def.json"
      }
      
    2. 在Startup.cs中读取配置并初始化Firebase:
      var serviceAccountPath = Configuration.GetValue<string>("FirebaseSettings:ServiceAccountFilePath");
      FirebaseApp.Create(new AppOptions()
      {
        Credential = GoogleCredential.FromFile(serviceAccountPath)
      });
      

    后续更换环境或路径时,只需修改配置文件即可,无需改动代码。

内容的提问来源于stack exchange,提问作者Thành Hồ Tấn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:35:51