チャットアプリ(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のデータベースを作成する際に考慮すべき最も重要な「ルール」の一つとして指摘したいと思い
完全に機能するチャットを含む[サンプルアプリ](https://firebase.google.com/docs/samples/)も参照してください。 – Kato