【发布时间】:2019-12-11 11:55:55
【问题描述】:
我正在尝试传递 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 文件,但是当我部署我的代码时,我在我的 now 控制台中收到以下错误:
TypeError [ERR_INVALID_ARG_TYPE]:第一个参数必须是 string、Buffer、ArrayBuffer、Array 或 Array-like Object 类型之一。接收类型未定义
这是否表明我的环境变量没有被读取?这里有什么问题?好像根本不存在
【问题讨论】:
标签: deployment continuous-integration next.js vercel