【发布时间】:2018-04-16 14:04:25
【问题描述】:
我的大部分应用程序都在使用 firebase.database(),而我只在需要提升权限的地方使用了 admin。我刚刚更新到 Firebase 4.12.1,一旦我这样做了,我在使用 admin.database() 时开始收到以下错误:
[2018-04-16T13:45:01.042Z] @firebase/数据库:FIREBASE 致命错误: 数据库初始化多次。请确认格式 数据库 URL 与每个 database() 调用匹配。
我发现,如果我删除在 admin.database() 之前发生的对 firebase.database() 的调用,我将不再遇到问题,但是如果我转到执行用户 firebase.database() 的后续页面,则该连接,我收到错误,因为连接已经存在。
这是一个错误,是我做错了什么,还是在 Firebase 4.10.0(我拥有的最后一个工作版本)之后,我们不能在同一个节点应用程序中同时使用 firebase.database() 和 admin.database()?
app.js(截断)
var config = {
apiKey: "XXXX",
authDomain: "XXXX",
databaseURL: "https://XXXX.firebaseio.com",
projectId: "XXXX",
storageBucket: "XXXX",
messagingSenderId: "XXXX"
};
firebase.initializeApp(config);
serviceAccount = require(path.join(__dirname, 'XXXXX.json'));
var database = firebase.database();
users.js
var express = require('express');
var router = express.Router();
var firebase = require("firebase");
var admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://XXXX.firebaseio.com"
});
/* GET users listing. */
router.get('/', function(req, res, next) {
var databaseRef = admin.database().ref('navigator/users');
var query = databaseRef.once('value').then(function(snapshot) {
var totalUsers = 0;
snapshot.forEach(function(element) {
if(element.child('locations').hasChild('branson')){
console.log(element.key);
console.log('');
totalUsers += 1;
}
});
res.send('totalUsers' + totalUsers);
});
});
module.exports = router;
【问题讨论】:
标签: node.js firebase firebase-realtime-database firebase-admin