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

Firebase初始化报错找不到serviceAccountKey.json文件如何解决

问题场景

运行如下Firebase Admin SDK初始化代码:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

cred = credentials.Certificate("serviceAccountKey.json")
firebase_admin.initialize_app(cred)

运行后抛出如下报错:

File "C:\Users\olive\PycharmProjects\pythonProject\main.py", line 6, in <module>
    cred = credentials.Certificate("serviceAccountKey.json")
  File "C:\Users\olive\PycharmProjects\pythonProject\venv\lib\site-packages\firebase_admin\credentials.py", line 83, in __init__
    with open(cert) as json_file:
FileNotFoundError: [Errno 2] No such file or directory: 'serviceAccountKey.json'

serviceAccountKey.json文件存放位置:
serviceAccountKey.json文件存放位置

报错原因

代码中传入的是相对路径serviceAccountKey.json,Python执行open()操作时,会从程序运行时的工作目录下查找对应文件,不会自动遍历所有子文件夹。当前工作目录下不存在该文件,就会触发文件找不到的错误。
从给出的项目结构判断,大概率是密钥文件没有放在执行脚本main.py的同级根目录,或是PyCharm运行时配置的工作目录和存放密钥的目录不匹配。

修复方法
  • 方法1:使用绝对路径直接指定密钥位置
    右键点击serviceAccountKey.json复制其完整路径,替换代码中的相对路径即可。Windows路径注意不要直接使用单反斜杠,避免触发转义问题,示例:
    # 用正斜杠写路径
    cred = credentials.Certificate("C:/Users/olive/PycharmProjects/pythonProject/serviceAccountKey.json")
    
  • 方法2:调整文件位置
    把serviceAccountKey.json移动到和main.py同级的项目根目录下,保持原有代码的相对路径写法不变,即可正常读取。
  • 方法3:动态拼接路径(兼容性最优)
    借助os模块基于当前运行的py文件位置动态计算密钥路径,不会受工作目录变动、项目迁移影响,示例代码:
    import os
    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # 获取当前执行脚本所在的文件夹路径
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接得到密钥文件的完整路径
    key_path = os.path.join(script_dir, "serviceAccountKey.json")
    cred = credentials.Certificate(key_path)
    firebase_admin.initialize_app(cred)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:36:33