2016-06-01 7 views
6

https://firebase.google.com/docs/database/server/retrieve-data#section-startでサーバー設定のすべての手順を実行しましたが、ブラウザで参照を作成しようとすると、 [default]という名前のアプリケーションが既に存在します。その時、preiono F5が "databaseUrl"があることを私に伝えたら、アプリケーションのfirebaseを起動するときに必ずそのデータを提供する必要があります。「DEFAULT」という名前のFirebaseアプリがすでに存在しています.Google 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; 

他の権限やその他のキーを作成しましたが、何も機能しません。ありがとうございました。あなたはところであなたrouter.get 外で、アプリごとに一度だけfirebase.initializeAppを実行する必要があり

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 O.u (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) 
+0

使用しているFirebase SDKのバージョンも教えてください。それはv2.xかv3.xですか? – praneybehl

+0

「https://xxxxxyyyyzzzzz.firebaseio.com/」で再度データベース名やプロジェクトIDを使用していますか? v3.xでは、プロジェクトIDを代わりに使用する必要があると思います。たとえば、新しいFirebaseコンソールでプロジェクトIDを見つけることができます。 firebaseコンソールでデータベースに移動すると、URL「https://console.firebase.google.com/project/ /database/data」が表示されます。それが役に立てば幸い。 – praneybehl

+0

こんにちは、おかげさまで、私はバージョン** 3.x **を使用しており、プロジェクトのID(** project_id **)を使用しています。私は、F5キーを押した後に表示されるメッセージを配置しました –

答えて

0

ノード-v = v4.2.6 Firebaseのv3.xのは、あなたの輸出が間違っ/奇妙に見えます...モジュールであれば、なぜrouter.getを直接呼びますか?あなたのモジュールが必要になると、すぐに実行されます。なぜあなたはルータを輸出していますか?

4

here is an answer I wrote for this question

これは私もFirebaseの新しいバージョンにアップグレードするに走った問題です。 2つの別々のfirebaseアプリを初期化したいかもしれませんが、アプリの2つの異なる場所でrefsを使いたいだけで、同じエラーが発生していました。

この状況では、firebaseを一度しか初期化していないアプリケーション用のfirebaseモジュールを作成してから、アプリケーションの別の場所にインポートまたは要求する必要があります。

あなたはfirebootコンソールからconfigオブジェクト全体をコピーして、ここにAPIキーとすべてを貼り付けるべきです。ここで

は、私は私のモジュールを作った方法の例です。

import Firebase from '/your/module/location' 
var messagesRef = Firebase.ref("messages/"); 

それとも

var Firebase = require('/your/module/location'); 
var messagesRef = Firebase.ref("messages/"); 
:あなただけで、アプリケーション内の別の場所で、その後のモジュール/ 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 

そして、

+0

このメソッドを適用しても、同じエラーが表示される@lommaj – Ezeewei

5

アプリが既に読み込まれているので、既に読み込まれているかどうかを確認できます。 1つの方法は:

if (!firebase.apps.length) { 
    firebase.initializeApp({}); 
} 
+0

私の場合は孤独な解決策のみです。どうもありがとうございます!!! – Adry

関連する問題