2016-04-04 14 views
0

現在Firebaseを使用してアプリケーションを構築しており、チャットも実装することに決めました。Firebaseチャット - 他のユーザーへの通知

JSQMessagesVCをGUIとして使用でき、Firebaseチャットのアスペクトも同様に機能しました(2つのUIDを組み合わせてチャットルームを作成する、例:/ 123_456)。しかし、他のユーザーがメッセージを受け取った場合、どのように通知するかは分かりません。 (ユーザー123がチャットルーム123_456を開いてメッセージを送信した場合、メッセージを受信したことをユーザー456にどのように通知しますか)

ありがとうございました!

答えて

0

あなたの質問は、データベースの設計に関連しています。チャット機能を実装する場合、データベース構造についてもう一度考え直す必要があります。 Firebaseがあなたにトリガーを提供するわけではないため、データベース構造についてのすべてのことは、現在のノードでのプライマリアクションで他のノード(つまりデータベーステーブル)に対していくつかのアクションを実行できるようにします。

それらのチュートリアルをすべて読んでください。とにかくもう一度見てみましょうstructuring your data

あなたの場合に役立つ良いchat exampleです。グループチャットを参照していますが。この目的のためにデータベースがどのように構成されているかを見てみましょう。

基本的に、誰かが他の人とチャットするための部屋を開いたときに、クライアント側から別のノードにいくつかのアクションを追加する必要があります。

おはようございます別のSO Answerをご覧ください。

0

私は同じ問題を抱えていました。これは、各ユーザーが多数のチャットルームを持つ追加のノードを配置することで解決しました。 (0888a5dc-fe8d-4498-aa69-f9dd1361fe54のように)チャットルームのユーザーにオブザーバーをカウンター、説明、タイムスタンプで置きます。新しいメッセージ、更新カウンタ、およびlastMessageなどは次のとおりです。

"Messages" : { 
"0888a5dc-fe8d-4498-aa69-f9dd1361fe54" : { 
    "0888a5dc-fe8d-4498-aa69-f9dd1361fe5451879163-8b35-452b-9872-a8cb4c84a6ce" : { 
    "counter" : 2, 
    "description" : "Breta", 
    "lastMessage" : “cool”, 
    "lastUser" : "51879163-8b35-452b-9872-a8cb4c84a6ce", 
    "messageType" : "txt", 
    "sortTimestamp" : -1.459518501758476E9, 
    "updatedAction" : 1.459518501758468E9, 
    "userId" : "51879163-8b35-452b-9872-a8cb4c84a6ce" 
    }, 
    "0888a5dc-fe8d-4498-aa69-f9dd1361fe547bfe8604-58ad-4d18-a528-601b76dd2206" : { 
    "counter" : 0, 
    "description" : "Romeo", 
    "lastMessage" : “yep”, 
    "lastUser" : "0888a5dc-fe8d-4498-aa69-f9dd1361fe54", 
    "messageType" : "txt", 
    "sortTimestamp" : -1.459527387138615E9, 
    "updatedAction" : 1.459527387138613E9, 
    "userId" : "7bfe8604-58ad-4d18-a528-601b76dd2206" 
    } 
} 
関連する問題