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

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

我在Heroku上部署了一个PythonDjango应用程序,它通过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'
}
此第三方库中的实现看起来有点像:

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)
...

问题是,为了部署到Heroku,我希望避免将这个Firebase JSON提交到git。

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

  • 向git添加(&commit)一个虚拟(修订或更改机密)
    firebase.json
  • 将更新后的提交拉到您的服务器&手动修改/替换虚拟的
    firebase.json
由于json是一个配置文件&几个月内不会更改,因此您可以忽略服务器上的本地更改(确保不会意外地隐藏/清除它)。这样,您可以确保每个人都有配置文件(本地、暂存和生产),但您需要根据所需的访问级别/环境进行更改