2017-01-09 2 views
2

チャットアプリ(Webベース)用のFirebaseデータベースを使用して、ユーザー対ユーザーの会話を保存および取得するための最良のデータベース構造を理解しようとしています。ユーザー(およびグループ)のチャットアプリケーションに対するユーザーのFirebaseデータベースレイアウトを修正しますか?

私の現在の計画は、それぞれ、例えば、(UserID1_UserID2など)は、2人のチャット参加者の一意Firebase IDを組み合わせることによって作成される独自のIDをチャット与えることである:このチャットIDがデータベースに格納されるFQ5d0jwLQDcQLryzevBxKrP72Bb2_GSIbxEMi4jOnWhrZaq528KJKDbm8、及び2人の参加者の間で送信されたメッセージを含みます。

例のレイアウト:

MYAPP 
    |_______conversations 
    |     |_____UserID1_UserID2 
    |     |     | 
    |     |     |__OshwYF72Jhd9bUw56W7d 
    |     |     |      |__name:"Jane" 
    |     |     |      |__text:"Hello!" 
    |     |     | 
    |     |     |__KbHy4293dYgVtT9pdoW 
    |     |     |__PS8tgw53SnO892Jhweh 
    |     |     |__Qufi83bdyg037D7RBif 
    |     |     |__Gicuwy8r23ndoijdakr 
    |     | 
    |     |_____UserID5_UserID16 
    |     |_____UserID8_UserID7 
    |     |_____UserID3_UserID8 
    | 
    |_______users 

するたびにユーザーがサインアプリに、彼らは自分の連絡先のリストが表示されます。彼らがチャットする相手を選択すると、チャットIDを生成するためにJavascriptを使用して、選択した友人のFirebase IDを組み合わせます。このチャットIDは、データベースに作成され(チャットを初めて行った場合)、データベースからチャットした場合に以前にチャットしたメッセージを読み込むために使用されます。

私の質問は、これを使用する正しい方法ですか?この方法を使用すると、私はどんな問題にぶつかることがありますか?たとえば、将来2人以上のグループの会話を実装しようとすると問題はありますか?

Firebase/SQLデータベースを使用して人から人へのチャットアプリケーション(またはグループ)の正しいデータベースレイアウトロジックの例や、本当に感謝します。

ありがとうございます!私はNoSQLのデータベースを作成する際に考慮すべき最も重要な「ルール」の一つとして指摘したいと思い

+1

完全に機能するチャットを含む[サンプルアプリ](https://firebase.google.com/docs/samples/)も参照してください。 – Kato

答えて

0

何かがあるビューの後にあなたがしなければならない

構造データをその。

は、これは、データがあなたのビュー(おそらくあなたのhtmlページ)に表示したいときは、単一​​の読み取りを行うことは、そのような方法で構成されなければならないことを意味しています。

データベースを構築する最適な方法を見つけるには、最初に自分のビューを見る必要があります。また、データをどのように読み込むかを想像してみてください(直接の読み込みとクエリ)。

Altoughtあなたの現在の構造は(あなたが今作成しているものの)うまく見えます。はい、グループチャットを作成するときに問題が発生する可能性があります。あなたはこの方法は、あなたが実際に簡単に各チャットに参加者を追加することができていることに気づくウィル

enter image description here

:私はこのようなものを使用することをお勧めします。これはあなたの唯一のノードではないことに注意してください。 あなたのお手伝いをするには、David East's Firebase Database For SQL Developersを見ることをお勧めします。あなたは、(ユーザーの詳細を保存するために)ユーザーのような他のノードとメッセージ(各チャットのメッセージを保存する)などを作成する必要があります。

+1

私はこの方法についても考えていましたが、要件の1つに基づいて、ユーザー1とユーザー2のみがチャットを分離しますが、ユーザー3は分離しませんでしたか?例として。私はログインしてユーザー2をクリックし、そのユーザーとのチャットを見たいと思っています。 –

関連する問題