名为“”的Firebase应用已经存在,并且Google的Firebase参考在服务器上不起作用
我遵循https://firebase.google.com/docs/database/server/retrieve-data#section-start中服务器configuration的所有步骤,但是当我尝试在浏览器中创build参考时告诉我应用程序称为[默认]已经存在。 那时如果preiono F5告诉我有“databaseUrl”,我必须确保在启动应用程序的firebase时提供这些数据。
var express = require('express'); var router = express.Router(); var firebase = require('firebase'); /* GET home page. */ router.get('/', function(req, res, next) { firebase.initializeApp({ serviceAccount: "aaaabbbbcccc.json", databaseUrl: "https://xxxxxyyyyyzzzzz.firebaseio.com/" // <<<<--- it can not find }); var db = firebase.database(); // <<<<---- Here is a problem var ref = db.ref('vistas/principal'); ref.once('value', function(data){ res.render('index', { title: 'Express' }); }); }); module.exports = router;
我创build了其他授权,其他密钥等,但没有任何工作。 谢谢。
节点-v = v4.2.6 Firebase v3.x
FIREBASE FATAL ERROR: Can't determine Firebase Database URL. Be sure to include databaseURL option when calling firebase.intializeApp(). Error: FIREBASE FATAL ERROR: Can't determine Firebase Database URL. Be sure to include databaseURL option when calling firebase.intializeApp(). at Error (native) at ad (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\firebase\database-node.js:37:278) at Object.firebase.INTERNAL.registerService.Reference [as database] (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\firebase\database-node.js:238:113) at Ou (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\firebase\app-node.js:16:94) at Object.d [as database] (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\firebase\app-node.js:18:182) at c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\routes\index.js:14:21 at Layer.handle [as handle_request] (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\express\lib\router\layer.js:95:5) at next (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (c:\TsPrj\_pruebas\vistas-realtime-desde-firebase\node_modules\express\lib\router\layer.js:95:5)
这里是我为这个问题写的一个答案
这是我遇到的一个问题,以及升级到新版本的Firebase。 您可能需要初始化两个独立的Firebase应用程序,但我只是想在我的应用程序的两个不同位置使用参考,而且我得到了相同的错误。
你需要为这种情况做的是为你的应用程序创build一个firebase模块,只需要初始化一次firebase,然后在你的应用程序的其他地方导入或者需要。
您应该从Firebase控制台复制整个configuration对象,并将其粘贴到API密钥和所有内容中。
下面是我创build模块的一个例子:modules / firebase.js
import firebase from 'firebase'; var firebaseConfig = { apiKey: "some-api-key", authDomain: "some-app.firebaseapp.com", databaseURL: "https://some-app.firebaseio.com", storageBucket: "some-app.appspot.com", }; var FbApp = firebase.initializeApp(firebaseConfig); module.exports = FbApp.database(); //this doesnt have to be database only
然后在你的应用程序的其他地方,你只需
import Firebase from '/your/module/location' var messagesRef = Firebase.ref("messages/");
要么
var Firebase = require('/your/module/location'); var messagesRef = Firebase.ref("messages/");
你可以检查应用程序是否已经加载,因为它应该加载一次。 一种方法是:
if (!firebase.apps.length) { firebase.initializeApp({}); }
你应该只执行firebase.initializeApp每个应用程序,在你的router.get顺便说一句,你的出口看起来怪异/错误…如果它是一个模块,你为什么直接调用router.get? 只要你需要你的模块,它会被执行。 你为什么出口路由器?