2017-06-10 10 views
1

私はFirebaseを使ってiOSアプリケーションを構築していますが、FirebaseのobserveSingleEventメソッドは、アプリケーションがネットワークに接続されておらず、その場所にキャッシュされた値がない場合でも起動しません。接続されていないときにコールバックでFirebaseのobserveSingleEventを使用するには?

インターネットへの接続が失われたときにメッセージを表示する必要がありますが、keepSyncedを使用するときにその場所にキャッシュされた値がある場合は、その必要はありません。

エラーのないAPIが接続を検出できる場合や返されない場合はどうすればよいですか?ドキュメントには、このデータにアクセスする権限がない場合にcancelBlockが呼び出されると書かれているので、接続していないアプリケーションがコールバックしていない場合でもそうです。

答えて

1

もし、そうでなければstatetmentで問題を確認してください。 Detecting Connection State

+0

おかげエムレ・ユルマズ:それが接続されている場合は、observeSingleEvent機能に

let connectedRef = Database.database().reference(withPath: ".info/connected") connectedRef.observe(.value, with: { snapshot in if snapshot.value as? Bool ?? false { print("Connected") } else { print("Not connected") } }) 

もっと詳細を呼ぶだろう。 observeSingleEventを呼び出す前に接続状態を検出するのは素晴らしいことですが、接続状態がfalseのときにいつでもユーザーにno-connectionメッセージを表示するのではなく、場所のキャッシュ値があるときにユーザーがAppを使用し続けるようにする必要がありますか? –

+0

状況は2つあります。重要な情報がない場合、キャッシュされた値が表示され、「接続なしのインターネット」通知@WillChen –

関連する問題