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

Ruby接入Google Firestore报错:无法加载默认凭证,如何获取密钥文件?

解决Ruby接入Firestore时的凭证加载问题

我来帮你搞定这个凭证文件的获取问题——其实它藏在Firebase控制台的项目设置里,你可能没找到正确的入口,步骤很简单:

  • 打开Firebase控制台,进入你的jg-jai-dev项目
  • 点击左侧导航栏底部的齿轮图标(项目设置)
  • 切换到「服务账号」标签页
  • 找到「Firebase Admin SDK」区域,点击生成新的私钥按钮
  • 在弹出的确认窗口里点击「生成密钥」,浏览器会自动下载一个JSON格式的文件,这就是你需要的keyfile.json

拿到文件后,有两种方式在Ruby代码里使用它:

方式一:直接在代码里指定路径

把下载的JSON文件放到你的项目目录下(比如根目录),然后修改测试代码:

it 'do something with firestore', focus: true do
  firestore = Google::Cloud::Firestore.new(
    project_id: 'jg-jai-dev',
    credentials: "./keyfile.json" # 这里填文件的正确路径
  )
end

方式二:使用环境变量(推荐,更安全)

设置环境变量来指定凭证文件路径,这样代码里不用硬写敏感信息:

# Linux/macOS终端里执行
export GOOGLE_APPLICATION_CREDENTIALS="/full/path/to/your/keyfile.json"

之后你的测试代码就可以回到最初的写法,不用传credentials参数:

it 'do something with firestore', focus: true do
  firestore = Google::Cloud::Firestore.new(project_id: 'jg-jai-dev')
end

至于你之前遇到的RuntimeError: Could not load the default credentials错误,原因是Google的SDK默认会尝试从环境变量、Google Cloud服务器元数据等位置自动加载凭证,但你的本地开发环境没有这些配置,所以必须手动提供服务账号的密钥文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:52:19