2017-02-15 8 views
-1

FCMの送信について私の特別なケースで尋ねたいと思った。私はFirebase Topic messaging and Device group messagingについて読んでいますが、私のシナリオではうまくいかないと思います。Firebaseトピックを使用しない方法メッセージングとデバイスグループメッセージング?

私は、ヘルプが必要なFirebase接続アプリを持っています!

私は、アプリユーザーがチャットメッセージを送信できる場所を作成したいと思います。誰も聞いていない、または100万人以上の人が聞いている可能性があります。

チャットルームは何百万、何十億にものぼり、チャットで何人がリッスンしているかを知る方法はない。リッスンしている人もいるかもしれない。

ユーザーがチャットメッセージを送信すると、その旨をリッスンしているすべてのユーザーに送信する必要があります。

どうすればいいですか?

+0

Firebase Realtime Databaseが必要なようです。 –

+0

yea多分、あなたは微粒子のチャットに登録している各ユーザがFirebaseのリアルタイムデータベースの鍵を聴くことができるのですか?しかし、ユーザーが現在このアプリを使用していない場合、そのユーザーはメッセージを正しく受け取ることができません。 –

答えて

0

Firebaseデータベースを使用して、シームレスにチャットアプリを作成できます。その特定のアプリケーションのチュートリアルが実際にたくさんあります。

一般的に、構造は次のようになります。ユーザーがあなたのアプリを介してメッセージを送信するときので、あなただけのmessagesの下に新しいノードを作成したい

{ 
    "chats": { 
    "one": { 
     "title": "Historical Tech Pioneers", 
     "lastMessage": "ghopper: Relay malfunction found. Cause: moth.", 
     "timestamp": 1459361875666 
    }, 
    "two": { ... }, 
    "three": { ... } 
    }, 

    "members": { 
    "one": { 
     "ghopper": true, 
     "alovelace": true, 
     "eclarke": true 
    }, 
    "two": { ... }, 
    "three": { ... } 
    }, 

    "messages": { 
    "one": { 
     "m1": { 
     "name": "eclarke", 
     "message": "The relay seems to be malfunctioning.", 
     "timestamp": 1459361875337 
     }, 
     "m2": { ... }, 
     "m3": { ... } 
    }, 
    "two": { ... }, 
    "three": { ... } 
    } 
} 

source

をし、該当するエントリをchatsの下に更新します。私は、クライアント側のプロセスについての詳細を掲載したいが、私はあなたが

ビットさらに明確にするために、あなたは上のchatsノードに耳を傾けなければならない

EDITを使用しているどのプラットフォームわからないんだけど、あなたのプラットフォームを変更するには、最後のメッセージのtimestampがデバイスに保存されているものから変更されたら、messagesをチェックします。それとも、単にchildAddedmessagesで聞くことができます。

通知をプッシュする必要がある場合を除き、この場合FCMは実際には必要ありません。その場合は、変更をリッスンして適切に通知する独自のサーバーが必要です。

+0

「ユーザーがあなたのアプリからメッセージを送信するたびにいつでも」のセキュリティはどうですか?FCMサーバーのキーが必要ですか? –

+0

ご説明いただきありがとうございますが、ユーザーが現在アプリを使用していない場合、そのユーザーはメッセージを受け取らないでしょうか?うん、私は「自分のサーバーが必要だ」と知っている。私はちょうどいくつかのバイブを得るためにこのQを尋ねたかった –

+2

確かに! :-) FCMの「メッセージング」はインスタントメッセージング以上の通知サービスだと指摘したいと思います。そして、はい、ユーザーは、メッセージを受信するためにアプリを使用する必要があります。これらのメッセージをアプリに「プッシュ」するには、同じことをする(Firebaseデータベースノードをリッスンする)独自のサーバを設定し、FCMまたは他の手段を使用してそれらのメッセージをプッシュする必要があります。 – ThunderStruct

関連する問題