我正在尝试将Firebase环境变量传递给now
进行部署。
我已经使用base64手动编码了这些变量,并使用以下命令将它们添加到了现在:
now secrets add firebase_api_key_dev "mybase64string"
编码的字符串放在语音标记""
这些都在我的CLI工具中,我可以使用list命令查看它们:
now secrets ls
> 7 secrets found under project-name [499ms]
name created
firebase_api_key_dev 6d ago
firebase_auth_domain_dev 6d ago
...
在我的Firebase配置中,我正在使用以下代码:
const config = {
apiKey: Buffer.from(process.env.FIREBASE_API_KEY, "base64").toString(),
authDomain: Buffer.from(process.env.FIREBASE_AUTH_DOMAIN,"base64").toString(),
...
}
在我的now.json
文件中,我有以下代码:
{
"env": {
"FIREBASE_API_KEY": "@firebase_api_key_dev",
"FIREBASE_AUTH_DOMAIN": "@firebase_auth_domain_dev",
...
}
}
在我的本地环境(运行next
时,一切正常,因为我也有一个带有这些变量的.env
文件,但是当我部署代码时,在{ {1}}控制台:
now
这是否表明未读取我的环境变量?这里有什么问题?看来它们根本不存在
答案 0 :(得分:1)
解决方案是将我现有的now.json
替换为:
{
"build":{
"env": {
"FIREBASE_API_KEY": "@firebase_api_key",
"FIREBASE_AUTH_DOMAIN": "@firebase_auth_domain",
"FIREBASE_DATABASE_URL": "@firebase_database_url",
"FIREBASE_PROJECT_ID": "@firebase_project_id",
"FIREBASE_STORAGE_BUCKET": "@firebase_storage_bucket",
"FIREBASE_MESSAGING_SENDER_ID": "@firebase_messaging_sender_id",
"FIREBASE_APP_ID": "@firebase_app_id",
"FIREBASE_API_KEY_DEV": "@firebase_api_key_dev",
"FIREBASE_AUTH_DOMAIN_DEV": "@firebase_auth_domain_dev",
"FIREBASE_DATABASE_URL_DEV": "@firebase_database_url_dev",
"FIREBASE_PROJECT_ID_DEV": "@firebase_project_id_dev",
"FIREBASE_STORAGE_BUCKET_DEV": "@firebase_storage_bucket_dev",
"FIREBASE_MESSAGING_SENDER_ID_DEV": "@firebase_messaging_sender_id_dev",
"FIREBASE_APP_ID_DEV": "@firebase_app_id_dev"
}
}
}
我缺少build
标头。
我必须联系ZEIT支持人员来帮助我确定此问题。