2016-06-28 7 views
1

その後、「(私は古いバージョンでそうであるように)他のモジュールに注入するためbaseRefをprovided`:

$provide.value('FirebaseBase', baseRef);

サービスモジュールに FirebaseBaseを注入して、 FirebaseBase.child('profile')

angular.js:4576 Uncaught Error: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp().

あり、エラーがどこから来るの兆候はありませんが、私はいくつかを持っている:すべてのエラーを生成しませんが、時にアプリの実行私は、コンソールでこのエラーを取得しています

run相での認証コード:

$firebaseAuth.$onAuthStateChanged(..

と私はそれがそこから来るかもしれないと推測しています。私は移行ガイドに従おうとしましたが、現実的な例はないようで、新しいAngularFireがfirebase.initializeAppとどのように関係しているかはわかりません。

どこにサンプルアプリがありますか?何か不足していますか?

+1

firebase.initializeApp()を同じアプリで複数回呼び出すと、このエラーが発生します。あなたはそれを1回だけ呼び出すべきです。あなたは設定コードを1回だけ実行していますか?実際にあなたのコードの他の場所でinitializeApp()を呼び出していますか?セットアップコードを含むように答えを更新できますか? – jwngr

+0

角度のあるアプリです。私の知る限り、configは起動時に一度しか実行できません。 (作業中の)アプリケーションの構造は実際には変更されていません。 InitializeAppは、クライアントサイドアプリケーションの他の場所では実行されません。 メッセージは、initializeAppが何度も実行されていないことを示唆しているようで、複数回実行されているわけではありません。それは間違っていますか? 非常に多くのセットアップコードをすべて投稿することは実際には不可能です。 – kpg

+0

ああ、私はそれを間違って読んで、申し訳ありません。 Firebaseの使用を開始する前に、設定コードが実際に実行されていないようです。セットアップコードを見ることなく、私はあなたをどのように助けることができないのか分かりません。それを下ろしてみると、あなた自身が問題を見つけるかもしれません。また、AngularFire(https://github.com/firebase/angularfire)を使ってAngularとFirebaseの併用を簡単にしてみましたか? – jwngr

答えて

2

あなたは私がFirebase

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngCordova']) 

    .run(function ($ionicPlatform, FirebaseDB, $rootScope, $state) { 

    FirebaseDB.initialize(); 

    // for authentication, managing the state if error.. 
    $rootScope.$on('$stateChangeError', 
     function (event, toState, toParams, fromState, fromParams, error) { 

     // if the error is "NO USER" the go to login state 
     if (error === "NO USER") { 
      event.preventDefault(); 
      $state.go('login', {}); 
     } 
     }); 

    }) 

の私の以前の統合の数で、このミスを犯し、あなたがそこに認可しようとしているので、あなたの角度のコードでrunブロックの先頭で初期化を呼び出す必要があります私のfirebaseServiceで

.factory('FirebaseDB', function ($q, $state, $timeout) { 
    var instance, storageInstance, unsubscribe, currentUser = null 
    var initialized = false 

    return { 
     initialize: function() { 

     // Not initialized so... initialize Firebase 
     var config = { 
      //SET YOUR CONFIG BLOCK HERE 
     }; 

     // initialize database and storage 
     instance = firebase.initializeApp(config); 
     storageInstance = firebase.storage(); 

     // listen for authentication event, dont start app until I 
     // get either true or false 
     unsubscribe = firebase.auth().onAuthStateChanged(function (user) { 
      currentUser = user 
      console.log("got user..", currentUser); 
     }) 
     }, 
    } 
    }) 
+0

角の初期化のためのベストプラクティスを探していただき、ありがとうございました。私が出会ったすべてのドキュメントは、index.htmlに入れていました。この情報はどこで入手できましたか? – jamie

+1

これはすべてのアプリで使用しているアプローチに過ぎず、index.html –

-2

あなたがそれを修正するでしょう。

+1

にこれを配置するのは間違いです。この回答は不明で、さらに開発する必要があります。質問をしたユーザーだけでなく、すべてのユーザーを助ける方法で回答を説明してください。 – LStarky

関連する問題