0
私は典型的なリスナーに(Herokuの、たとえば、上の)クラウドでホストされているFirebaseリアルタイムデータベースサーバアプリがある場合:スリープ状態のFirebaseデータベースサーバアプリケーションがリスナーイベントで起動しますか?
FirebaseOptions options = new FirebaseOptions.Builder()
...
FirebaseApp.initializeApp(options);
...
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
...
}
});
をして、このサーバアプリがときどきスリープ状態になる、それがリスナーイベントのために目を覚ますだろう? Firebaseがリスナーイベントのために私のサーバアプリケーションと対話するために使用するメカニズムは何ですか?通常のhttpリクエストですか? (例えば、あなたのアプリケーションサーバー上で実行される1つのような)
Androidアプリの場合はどうなりますか?私はDBリスナーをAndroidアプリに設定しています。子供が追加されるたびに、私はどのように目を覚ますべきですか?リスナーをサービスに入れてもデバイスが起きないので、WakefulBroadcastを使用する必要があります。一方、firebaseはどのような手段でもデバイスを復帰させる能力を持っていますか? –
Firebaseデータベースはソケット接続に依存しています。デバイスがソケットを閉じると、データベースクライアントが起動する方法はありません。しかし、このような場合Firebase Cloud Messagingを使用してデバイスを起動させるメッセージを送信し、データベースクライアントに接続を復元してデータを取得する機会を与えることができます。これは、非公式にプッシュツーシンクまたはティック・トゥ・シンクと呼ばれます。私の答えはこちら:https://stackoverflow.com/a/44828984/209103 –