需要 Firebase JSON 的 Django 应用程序的 Heroku 配置?

Posted

技术标签:

【中文标题】需要 Firebase JSON 的 Django 应用程序的 Heroku 配置?【英文标题】:Heroku config for a Django app that requires a Firebase JSON? 【发布时间】:2020-02-29 08:06:55 【问题描述】:

我在 Heroku 上部署了一个 Python Django 应用程序,它通过 the drf-firebase-auth library 使用 Firebase(出于多种原因,我必须使用它)。我知道不应将配置检查到版本控制中,但我不确定在我的情况下如何避免它。 drf-firebase-auth 库需要将 Firebase 凭据 JSON 文件保存在我的代码的目录结构中。如何基本上通过 Heroku 环境变量传递这个 JSON,而不需要将 JSON 文件提交到我的 git repo(并推送到 Heroku),以便我可以为 staging/production/etc 进行适当的配置设置?

drf-firebase-auth 库指示我将其添加到我的 settings.py 并将我非常敏感的 firebase.json 文件保存到我的代码库:

DRF_FIREBASE_AUTH = 
    'FIREBASE_SERVICE_ACCOUNT_KEY': 'project/config/firebase.json'

这个第 3 方库中的实现看起来有点像这样:

import firebase_admin
from drf_firebase_auth.settings import api_settings

...

firebase_credentials = firebase_admin.credentials.Certificate(
    api_settings.FIREBASE_SERVICE_ACCOUNT_KEY
)
firebase = firebase_admin.initialize_app(firebase_credentials)
...

问题是我想避免将此 Firebase JSON 提交到 git 以便部署到 Heroku。

【问题讨论】:

【参考方案1】:

在您的服务器上拥有一个需要手动修改一次的文件是可以的,就像您的环境变量一样。解决这个问题的一种方法是

在你的 git 中添加(并提交)一个虚拟(编辑或更改机密)firebase.json 将更新的提交拉到您的服务器并手动修改/替换虚拟firebase.json 与实际提交

由于 json 是一个配置文件并且几个月都不会更改,您可以简单地忽略服务器上的本地更改(并确保您不会意外地存储/清除它)。这样,您就可以确保每个人都有配置文件(本地、暂存和生产),但您需要根据所需的访问级别/环境进行更改。

【讨论】:

以上是关于需要 Firebase JSON 的 Django 应用程序的 Heroku 配置?的主要内容,如果未能解决你的问题,请参考以下文章

从 Firebase 数据快照获取 JSON 键值

将大型 json 文件从 Firebase 存储传输到 Firestore

将 JSON 数据编辑为 Firebase 格式

使用Curl从firebase导出大型json数据的问题

使用 Node.js 将 json 文件写入 Firebase?

我在哪里可以获得 Firebase 管理员的“serviceAccountCredentials.json”?