2016-11-02 6 views
0

、角度アプリはFirebaseは、オンライン/オフラインの場合は、最初のコールバック「オフライン」に対応Firebaseを防ぐためにどのように、特定の機能を無効/有効にするためにチェックする必要があるFirebase初期ロードでは、オンライン/オフラインのスニペットの最初の応答は常に「オフライン」

var firebaseRef = new Firebase(FIREBAE_URL); 
firebaseRef.child('.info/connected').on('value', 
    function(connectedSnap) { 
    if (connectedSnap.val() === true) { 
     console.log("online"); 
    } else { 
     console.log("offline"); 
    } 
}); 

答えて

1

.info/connected子は、常に現在の接続状態で応答します。アプリケーションのライフサイクルの早い段階でアタッチすると、Firebaseクライアントはサーバに接続しているため、まだ接続されません。

ライフサイクルの後半でリスナーを潜在的に接続することを除いて、この動作を変更する方法はありません。

+0

ええ、私はこれを理解しています。最初のロード時に接続リスナーのスニペットを使用できるといいですよ – Markus

+0

スニペットが何をするかわかりません。最初に値が「真」になるまで待つか?これは簡単に書くことができます([this](https://gist.github.com/puf/146fecdae240ac0e62f858f7650aa85f)に似ています)。しかし、あなたがオフラインであれば、それは決して起きることはありません。あなたが探している行動ではないと思います。次の反復は、いくつかのタイムアウトで真を待つでしょう。しかし、どのようなタイムアウト値ですか?ある地域で合理的なものは、別の地域で不合理に長い/短いです。あなたの特定のアプリのニーズには良い答えがあるかもしれませんが、Firebaseのすべてのユーザーに共通の答えはありません。 –

関連する問題