我正在将Vercel Deployments与NextJS应用程序配合使用。当我按下master时,部署会自动运行,但是我不想将密钥存储在GitHub中。我的无服务器功能依赖于数据库。在本地运行时,我可以简单地使用Google的默认身份验证凭据,但这在部署到Vercel时是不可能的。这样,我创建了一个服务帐户以使服务器具有访问权限。
如何加载服务帐户凭据而不将其自身密钥锁定到GitHub?
我尝试按照this issue中的说明添加密钥,但这没用。
AFAIK在Vercel中设置环境变量没有帮助,因为Google environment variables require a path/JSON file(相对于纯文本)。
答案 0 :(得分:0)
您可以创建一个对象并将环境变量作为每个对象键的值,而不是使用JSON文件的路径。例如:
admin.initializeApp({
credential: admin.credential.cert({
client_email: process.env.FIREBASE_CLIENT_EMAIL,
private_key: process.env.FIREBASE_PRIVATE_KEY,
project_id: 'my-project'
}),
databaseURL: 'https://my-project.firebaseio.com'
});
然后,您可以在Vercel的项目设置中添加环境变量。
代码示例:https://github.com/leerob/leerob.io/blob/master/lib/db-admin.js#L5-L8