当我试图用firebase初始化应用程序时,我遇到了这个错误:"默认的Firebase应用程序不存在。请确保在使用任何Firebase服务之前调用initializeApp((。">
这是我的脚本:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const servicesAccount = require("./admin.json");
const express = require("express");
const app = express();
const firebase = require("firebase");
const firebaseConfig = {...};
const database = admin.firestore();
firebase.initializeApp(firebaseConfig);
admin.initializeApp({
credential: admin.credential.cert(servicesAccount),
databaseURL: "...",
});
然后我所有的路线。。。
您应该在Admin对象上的任何其他方法之前调用initializeApp()
。更改语句的顺序如下:
admin.initializeApp({
credential: admin.credential.cert(servicesAccount),
databaseURL: "...",
});
const database = admin.firestore();
注意,admin.firestore()
在initializeApp()
之后。
通常,如果你想从云功能与Firebase后端服务(Firestore、实时数据库、云存储等(交互,你只需要初始化不带参数的Admin SDK即可
在这种情况下,SDK使用Google应用程序默认凭据和从FIREBASE_CONFIG环境变量中读取选项。。。这个FIREBASE_CONFIG环境变量自动包含在通过Firebase CLI。
还可以查看Cloud Functions文档的以下部分:firebase-admin
的新初始化语法。
另一方面,您可以执行以下
const firebaseConfig = {...};
firebase.initializeApp(firebaseConfig);
当您想在web应用程序中使用Firebase JavaScript SDK时,或者作为最终用户访问的客户端,例如在Node.js桌面或IoT应用程序中。
所以,总之,你应该做一些类似的事情:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const express = require("express");
const app = express();
const database = admin.firestore();
//....