如何通过 Firebase Cloud Functions 上的 .firebaserc 切换到另一个 serviceAccountKey.json?
How do I switch to another serviceAccountKey.json via .firebaserc on Firebase Cloud Functions?
在我的 .firebaserc
文件中,我提供了两个 Firebase 数据库,一个用于开发,一个用于生产:
{
"projects": {
"default": "db-dev",
"production": "db-prod"
}
}
所以当我部署到生产环境时,我会 运行:
firebase use production
firebase deploy --only functions
我的问题是我也在我的一个云函数中使用云存储,所以我有两个不同的 serviceAccountKey.json
文件,我将在此处使用:
const gcs = require('@google-cloud/storage')({ keyFilename: 'serviceAccountKey.json' })
我的问题是,当我通过 firebase use
切换到另一个数据库时,如何自动切换到另一个 serviceAccountKey.json
?
firebase use
无法像这样自动执行任何操作。它只是将一个 Firebase 项目附加到您的本地项目文件夹。它只是为您管理.firebaserc
。
您将不得不寻找另一种方法来完成这项工作。也许写一个脚本来管理凭据和 firebase use
?
每个 Firebase 项目都有自己的 Environment Configuration。解决方案是将服务帐户密钥存储在那里。
为每个 Firebase 项目设置服务帐户密钥:
firebase use default
firebase functions:config:set admin.key="serviceAccountKey-dev.json"
firebase use production
firebase functions:config:set admin.key="serviceAccountKey-prod.json"
环境配置将通过functions.config()
提供:
const functions = require('firebase-functions')
const gcs = require('@google-cloud/storage')({
keyFilename: functions.config().admin.key
})
在我的 .firebaserc
文件中,我提供了两个 Firebase 数据库,一个用于开发,一个用于生产:
{
"projects": {
"default": "db-dev",
"production": "db-prod"
}
}
所以当我部署到生产环境时,我会 运行:
firebase use production
firebase deploy --only functions
我的问题是我也在我的一个云函数中使用云存储,所以我有两个不同的 serviceAccountKey.json
文件,我将在此处使用:
const gcs = require('@google-cloud/storage')({ keyFilename: 'serviceAccountKey.json' })
我的问题是,当我通过 firebase use
切换到另一个数据库时,如何自动切换到另一个 serviceAccountKey.json
?
firebase use
无法像这样自动执行任何操作。它只是将一个 Firebase 项目附加到您的本地项目文件夹。它只是为您管理.firebaserc
。
您将不得不寻找另一种方法来完成这项工作。也许写一个脚本来管理凭据和 firebase use
?
每个 Firebase 项目都有自己的 Environment Configuration。解决方案是将服务帐户密钥存储在那里。
为每个 Firebase 项目设置服务帐户密钥:
firebase use default
firebase functions:config:set admin.key="serviceAccountKey-dev.json"
firebase use production
firebase functions:config:set admin.key="serviceAccountKey-prod.json"
环境配置将通过functions.config()
提供:
const functions = require('firebase-functions')
const gcs = require('@google-cloud/storage')({
keyFilename: functions.config().admin.key
})