У меня также есть два проекта: разработка и производство.
В /functions
У меня есть оба файла:
/functions/production-cred.json
и
/functions/development-cred.json
Я выполняю развертывание, используя соответствующие команды:
firebase deploy --only functions -P development
или
firebase deploy --only functions -P production
.
В index.js
Я использую переменную среды process.env.GCLOUD_PROJECT
дляопределить, какая среда используется.Эта переменная будет содержать имя вашего проекта, которое должно отличаться в зависимости от производства и разработки, вы не можете распечатать его, чтобы проверить.
Вот пример:
const env = process.env.GCLOUD_PROJECT
const development = (env == "myDevProject")
const database = development ? devDbUrl : prodDbUrl
const serviceAccountFile = development ? "devCred.json" : "prodCred.json"
const serviceAccount = require(`./${serviceAccountFile}`)
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: database
})
Делать это так нене требуется, чтобы вы установили псевдоним с firebase use dev|prod
.Раньше я делал это так же, как и вы, и это улучшение сделало развертывание быстрее и надежнее.