如何向 Netlify 提供 firebase 管理员凭据?
How to provide firebase admin credentials to Netlify?
我试图在 Netlify 上配置 GOOGLE_APPLICATION_CREDENTIALS
环境变量以便使用 firebase-admin
,但是我如何在那里获得实际的 JSON 文件?
显然我不能将它包含在 git 中。
您可以通过使用环境变量将凭据拼凑在一起来生成管理员凭据证书。
您必须使用 Netlify 的 environment mechanism
向 Netlify 运行时提供项目特定值
然后像这样实例化管理客户端
import admin, { app, AppOptions } from "firebase-admin";
const config: AppOptions = {
credential: admin.credential.cert({
projectId: process.env["FIREBASE_ADMIN_PROJECT_ID"],
clientEmail: process.env["FIREBASE_ADMIN_CLIENT_EMAIL"],
privateKey: process.env["FIREBASE_ADMIN_PRIVATE_KEY"].replace(/\n/g, "\n"),
}),
// databaseURL: process.env.SVELTE_APP_FIREBASE_DATABASE_URL,
};
let firebaseAdminApp: app.App;
if (!admin.apps.length) {
firebaseAdminApp = admin.initializeApp(config);
} else {
firebaseAdminApp = admin.app();
}
export default firebaseAdminApp;
我试图在 Netlify 上配置 GOOGLE_APPLICATION_CREDENTIALS
环境变量以便使用 firebase-admin
,但是我如何在那里获得实际的 JSON 文件?
显然我不能将它包含在 git 中。
您可以通过使用环境变量将凭据拼凑在一起来生成管理员凭据证书。
您必须使用 Netlify 的 environment mechanism
向 Netlify 运行时提供项目特定值然后像这样实例化管理客户端
import admin, { app, AppOptions } from "firebase-admin";
const config: AppOptions = {
credential: admin.credential.cert({
projectId: process.env["FIREBASE_ADMIN_PROJECT_ID"],
clientEmail: process.env["FIREBASE_ADMIN_CLIENT_EMAIL"],
privateKey: process.env["FIREBASE_ADMIN_PRIVATE_KEY"].replace(/\n/g, "\n"),
}),
// databaseURL: process.env.SVELTE_APP_FIREBASE_DATABASE_URL,
};
let firebaseAdminApp: app.App;
if (!admin.apps.length) {
firebaseAdminApp = admin.initializeApp(config);
} else {
firebaseAdminApp = admin.app();
}
export default firebaseAdminApp;