私はいくつかの説明が必要です。Firebaseを使用した1対1のAndroidチャット
私はFirebaseリアルタイムデータベースを使用しています。
今、2つのAndroidデバイス間でリアルタイムチャットを実装する必要があります。プッシュ通知も必要です。
ので、リアルタイムデータベースに基づくソリューションは、アプリが実行されていない場合、それはがイベントをonChildAdded処理しないので、ドロップすることです。
私は、サーバーへのデバイスから上流のメッセージを使用して、私は私の目的を達成することができますドキュメントに読み込みます。
今、アプリケーションサーバーが必要であることも書かれています。
私はアプリケーションサーバ(XMPPまたはHTTP)の必要性を明らかにしたい、そしてそのメッセージの全体の流れは装置Aから送信され、デバイスB
でオン通知M1れます私の意見のアプリケーションサーバはそう、途中に男として行動しなければならない:
A ---> XMPPサーバ---> FCM
FCM ---> XMPPサーバ--- > B
これは流れですか? ドキュメントには、私が正しいかどうかわかりません。 もしそうなら、FCMからXMPPサーバーにメッセージを送り返すにはどうすればよいですか? 通知メッセージは、XMPPサーバーからFCMからクライアントに送信されますか?
誰かが私を明確にしてください。私が考えた
その他のソリューション: 私は本当に強力firebaseリアルタイムデータベースを見つけるので、私は問題の周りを歩くためにこれらのソリューションを考えた:
- それがお送り変化したときにインクルードが
onChildAdded
のリスニングとされるアプリケーション・サーバーを作成します。クライアント装置への通知。 - クライアントアプリケーションでバックグラウンドサービスを作成して、
onChildAdded
を聞き、必要に応じて通知を作成します。
でも、私はこれらの解決策が嫌いです。 私の目標を達成するための標準と正しい方法を理解したい。
Firebaseリアルタイムデータベースを使用しているときにアプリサーバーを保持する必要はありません。それがFirebaseの全概念です。これは、バックエンドサーバーをデータベースと通信する必要がないということです。 Firebaseに基づいて実装されている1対1のチャットアプリケーションで作業中に、なぜプッシュ通知を実装する必要があるのか正確にはわかりません。新しいメッセージを受信したときに通知を表示したいですか? –
このリンクをご覧ください。これは役に立ちます。 https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html –
@ReazMurshed:アプリが実行されていないときにプッシュ通知を実装する必要があります。唯一のリアルタイムデータベースではこれは不可能です。アプリが実行されていない場合は、イベントを処理できません。 私はブログを読んでいます。私は何が書かれているのか理解していますが、Firebaseのサイトの文書にFirebase CloudのメッセージングとApp Serverを使用して必要なものを実現することが提案されているため、これは最善の解決策ではないと思います。 – xcsob