【问题标题】:How to provide firebase admin credentials to Netlify?如何向 Netlify 提供 Firebase 管理员凭据?
【发布时间】:2021-06-13 17:44:19
【问题描述】:

我尝试在 Netlify 上配置 GOOGLE_APPLICATION_CREDENTIALS 环境变量以使用 firebase-admin,但是如何在其中获取实际的 JSON 文件?

显然我不能将它包含在 git 中。

【问题讨论】:

    标签: netlify sveltekit


    【解决方案1】:

    您可以通过使用环境变量将凭据拼凑在一起来生成管理员凭据证书。

    您必须使用 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;
    

    【讨论】:

    • +1 太棒了,谢谢!实际上,我使用 bash 脚本使其工作,该脚本在构建时从环境变量生成凭据文件,但您的方法看起来更干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多