【发布时间】:2020-04-28 03:16:12
【问题描述】:
我正在开发一个应用程序,它需要在客户端(捕捉“on”事件以获取最近添加的数据)和服务器端(向数据库添加记录)访问 firebase 数据库。我不确定我是否正确地在客户端和服务器上都需要使用 2 个 db 实例,或者在服务器上创建 1 个并在客户端上使用它,因为我在本地收到警告说 Firebase 已经在全局范围。
这就是我在服务器端声明 db 实例的方式,效果很好:
var admin = require("firebase-admin");
var serviceAccount = require("../config/sterminal-0000-firebase-adminsdk-bvuit-ce5ee771bc.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://sterminal-0000.firebaseio.com"
});
module.exports.admin = admin;
...
const {admin} = require('../extra/firebase');
let db = admin.database();
这就是我在客户端声明 db 实例的方式:
包含 pug 模板的库
script(src="https://www.gstatic.com/firebasejs/7.14.2/firebase-app.js")
script(src="https://www.gstatic.com/firebasejs/7.14.2/firebase-database.js")
script(src="/javascripts/local.js" crossorigin="anonymous")
在本地脚本中:
var firebaseConfig = {
apiKey: "AIzaSyCkip7lcHNNodJNhrO5n0Hog5Kvs100000",
authDomain: "sterminal-00000.firebaseapp.com",
databaseURL: "https://sterminal-00000.firebaseio.com",
projectId: "sterminal-8bf73",
storageBucket: "sterminal-00000.appspot.com",
messagingSenderId: "961511900000",
appId: "1:96151100000:web:f3cec40f38f7b7d4000000"
};
firebase.initializeApp(firebaseConfig);
firebase.database().ref("messages").on("child_added", function (snap) {
console.log(snap.val().message);
}); // ----> DOES NOT WORK
我收到本地警告:
logger.ts:115 [2020-04-27T18:43:48.559Z] @firebase/app:
Warning: Firebase is already defined in the global scope. Please make sure
Firebase library is only loaded once.
【问题讨论】:
标签: node.js firebase express firebase-realtime-database