【问题标题】:Netlify & FirebaseNetlify 和 Firebase
【发布时间】:2021-04-24 10:34:23
【问题描述】:

我正在使用 Netlify 无服务器函数。我想检索数据并将其保存到 firebase firestore。我使用 firebase-admin SDK。

以下是初始化:

var admin = require("firebase-admin");

var serviceAccount = require("../keys/serviceAccountKey.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
});

我有多个功能,我想知道是否有一种方法可以一次初始化 firebase。因为我必须在我的所有函数中粘贴上面相同的代码,这似乎非常低效且不是最佳实践。

我已经阅读了 NodeJs 中的全局初始化,它只是导出它,然后在需要的地方导入该代码。但是在 netlify 中,它有点不同,因为我放在函数文件夹中的任何文件都将用作 URL 端点。

我对 Netlify 非常陌生,因此非常感谢您的澄清。

【问题讨论】:

    标签: javascript node.js netlify-function netlify-cli


    【解决方案1】:

    您可以创建一个单独的模块文件来初始化 firebase 应用,然后可以在所有文件中使用它的引用。

    创建一个名为firebase.js的文件

    var admin = require("firebase-admin");
    
    var serviceAccount = require("../keys/serviceAccountKey.json");
    
    var FirebaseApp = admin.initializeApp({
        credential: admin.credential.cert(serviceAccount)
    });
    
    module.exports.FirebaseApp = FirebaseApp;
    

    在另一个文件中,像下面这样使用它

    var FirebaseApp = require('/firebase.js')
    var collectionRef = FirebaseApp.database().ref("collection/");
    

    【讨论】:

    • 虽然我可以输入“ww.URL/.netlify/functions/firebase”并且它重新初始化了firebase,如果我刷新页面会抛出错误,说它已经被初始化。但我通过条件检查if (firebase.apps.length === 0) 解决了这个问题。我的问题已经解决了。但只是为了一般知识,我如何告诉 Netlify 不包含 firebase.js 作为 URL
    猜你喜欢
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2019-08-06
    • 2019-12-29
    • 2019-07-14
    • 1970-01-01
    相关资源
    最近更新 更多