2016-10-31 5 views
0

私はFirebaseで論理の質問があります。次のようになります: 部屋のウィンドウを開くとWhatsAppのようなチャットがあります。Firebaseをインスタンス化して、ウィンドウがリアルタイムであるため、ArrayAdapterをFirebaseをリカバリするために使用していますので、それは私にとっては大丈夫です。私は私のListViewコントロールアダプタの行ごとにFirebaseのインスタンスを作成Firebase Instance

の1-:

私の問題は、それはまだ、まだこのため、私の疑問ロジックのfirebaseへのリアルタイム接続されていない、最近の会話リストでありますこの画面を実装していますか? Firebaseがこれを良い習慣と見なしているかどうかわかりません。さらに、Firebaseの配列を作成しなければなりません。

2 - 今日私はルーム名の一意性を維持するためにTimeMillisの一員として自分のチャットルームを作成します。これから、ArrayAdpterを使用してFirebaseにこれらの部屋の一意のCharsを作成させ、チャットウィンドウで開いた部屋と同じように1つのインスタンスを作成するように変更しますか?私が見ている問題は、Firebaseのローカルインスタンスが、問題のユーザに属していないものを含め、すべてのベッドのすべてのリアルタイムアップデートを聞いてしまうことです。これは、クライアントがそれに属しているかどうかをFirebaseが要求している部屋をチェックすることで簡単に処理できますが、セキュリティ違反と思われますか?

もっと良い提案があれば教えてください。このプロジェクトのための 構造今日の私のfirebaseコンソール:

{ 
   chats 
        { 
           Room1 {}, 
      Room2 {}, 
      ... 
     } 
} 

答えて

0

Firebaseは、すでにあなたが彼らのデータベース構造に従っている場合、あなたは非常に簡単にこの機能を実現することができますチャットアプリケーションhttps://github.com/firebase/firechat

の公式例があります。あなたはそれを見ることができますhere

基本的には、ユーザ、ルーム、およびメッセージを追跡するためにroom-messages,room-usersおよびusersです。ファイヤーベースでデータを構築する方法の詳細については、https://firebase.google.com/docs/database/web/structure-dataを参照してください。この構造では、個々の部屋の更新を聞くことができます。

firebase documentation "できるだけフラットなデータ構造にすることをお勧めします。"

関連する問題