70

サーバー接続が失われたり回復したりしたかどうかを検出するために、現在の Firebase 製品内で機能する戦略はありますか?

モバイル デバイスのオフラインの不測の事態を考慮しており、Firebase データ レイヤーがいつ利用可能になるかを判断するための信頼できる手段が必要です。

4

6 に答える 6

95

これはよくリクエストされる機能であり、これを可能にする API の更新をリリースしました!

var firebaseRef = new Firebase('http://INSTANCE.firebaseio.com');
firebaseRef.child('.info/connected').on('value', function(connectedSnap) {
  if (connectedSnap.val() === true) {
    /* we're connected! */
  } else {
    /* we're disconnected! */
  }
});

完全なドキュメントはhttps://firebase.google.com/docs/database/web/offline-capabilitiesで入手できます。

于 2012-07-05T20:12:08.203 に答える
1

提案された解決策はうまくいかなかったので、「ヘルス/チェック」値を読み書きして接続を確認することにしました。これはコードです:

const config = {databaseURL: `https://${projectName.trim()}.firebaseio.com/`};
//if app was already initialised delete it
if (firebase.apps.length) {
    await firebase.app().delete();
}
// initialise app
let cloud = firebase.initializeApp(config).database();
// checking connection with the app/database
let connectionRef = cloud.ref('health');
connectionRef.set('check')
    .then(() => {
        return connectionRef.once("value");
    })
    .then(async (snap) => {
        if (snap.val() === 'check') {
            // clear the check input
            await connectionRef.remove();
            // do smth here becasue it works
    }
});

ここに画像の説明を入力

于 2018-06-27T09:18:51.823 に答える