首页 > 解决方案 > 如何在远程 Linux shell(Python Admin SDK)中使用 Firebase Admin SDK 服务密钥 JSON 文件?

问题描述

我最近开始使用 Firebase,并且对私钥 JSON 文件有疑问。我可以下载它并将文件安全地存储在具有 GUI 的计算机上 - 因此我的 Firebase Admin SDK 代码可以在具有 GUI 的计算机上正常工作。但是,我无法让该文件在远程 Linux shell 上运行,因为当我将证书内容复制到 shell 上的 .json 文件时,它会引发与 JSON 格式相关的错误。

我将如何在无法访问 GUI 的远程 Linux 服务器上使用 Admin SDK for Python,因为我无法下载私钥文件(因为它需要 GUI 才能下载)?提前致谢。

编辑:我忘了添加导致问题的原因。我要运行的代码在这里(我正在尝试使用 Admin SDK for Python):

import firebase_admin
from firebase_admin import db
   
firebase_admin.initialize_app({
     'databaseURL' : '<database URL here>'
})
    
ref = db.reference('/')
print(ref.get())

以下是在 Firebase 服务帐户设置中单击“生成私钥”按钮时由 Firebase 生成的服务帐户私钥的模板(出于安全原因,我删除了这些值):

{
  "type": "",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""
}

我已将GOOGLE_APPLICATION_CREDENTIALS变量设置为私钥文件的文件路径。这适用于 Windows 机器,但在我的 Linux 后端,如果我将私钥的内容复制到 Linux 后端的 .json 文件中,我会收到此错误:

ValueError:提供了非法的 Firebase 凭据。必须使用有效的凭据实例初始化应用程序。

我应该如何将 Admin SDK 与无法访问 GUI 的远程 Linux 服务器一起使用?谢谢。

标签: pythonfirebasefirebase-admin

解决方案


推荐阅读