python - 如何在远程 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 服务器一起使用?谢谢。
解决方案
推荐阅读
- go - 在我获得用户输入之前,TCP 连接正在关闭
- html - 对齐下拉菜单中的文本
- kubernetes - kubectl apply 不会更新服务选择器标签
- ios - 为什么 HTML5 Media Source 视频不能在 IOS 上运行?
- amazon-s3 - 在不同的 IAM 角色下运行 AWS Lambda 函数
- r - 在使用 R 中的 igraph 生成 k-正则图时,每个 k-正则图是否都是唯一且非随机的?
- ios - 将 Timer 添加到主 RunLoop 是正确的解决方案吗?
- java - 单击后获取警报对话框项目列表以显示在不同的片段、适配器或活动中
- mysql - 仅用于配置数据的名称-值-对模型
- mysql - phpmyadmin:为什么导出不保存到指定的 SaveDir?