2017-10-13 19 views
0

Firebaseチャットアプリを開発しています。Firebaseチャットアプリで友達を管理する方法 - Android

私はFirebaseのメール/パスワード認証を実装しました。だから、ユーザーがうまくサインアップしたとき、私はすべてのサインアップ/登録時に、名前、電子メールなどのユーザの詳細をUIDノードのFirebaseデータベースに保存するコードを持っています。

次に、電子メールIDを使用して友人のためのユーザー検索、 その電子メールIDとのuidはfirebaseデータベースに存在する場合、関数はtrueを返す、

そして、アプリは、その電子メールIDを追加します

<FirebaseApp> 
    <users> 
     ....users details... 

    <friends> 
     <userid> 
      <unique pushed id> : searched email // here the friend's email id is added 

の下での新しい友人、 を追加した後、私は、友達リストを表示するにはrecyclerviewを使用しています。 友人の下のすべてのノードを取得する>>現在のユーザーのuid >>

私のデータベース構造で説明したように、私は友人のデータベースにuidだけを保存しています。

最初のステップでは、ユーザーは友人のEメールIDのみを持ちます。リストfriendsListで言うことができます。

次に、私はこのfriendsListを使用して、プロフィール画像、名前、連絡先などの友だちの他のすべての詳細を検索します。これはユーザーノードの下に保存されます。

しかし、各ループで他のすべての友人の詳細を取得してから、配列リストに格納してから、そのarrayListをアダプタに渡してからrecyclerviewに表示します。非常に時間のかかるプロセスです。

他の機能も持つことができます。 Base64イメージからビットマップなどに変換してください。

アクティビティが開始されるたびに、上記のすべての手順を実行するたびに、時間のかかる処理が行われます。

これ以外にも、私は友人のノードの下に他の人の詳細を保存することができる別の方法があります。新しい友人がデータベースに追加された時点で、名前、連絡先などの名前を入力します。

しかし、もう1つの疑問が生じます。 はい、友人の他の詳細も保存できます...しかし、友人が彼のプロフィール画像を更新すれば、連絡先はどうなりますか?

私の場合、この手順は適切ではありません。

Firebaseアプリで友達リストのようなwhatsappを作成するにはどうすればいいですか?すべてのユーザーの友だちリストは常に友達の詳細で更新されます。 また、長い時間がかかりません。

答えて

2

友人ノードに必要なすべての詳細を保存することをお勧めします。

Opposite_Friendsタグを各ユーザーに保存することができます。友だちリストのユーザーがいるすべてのuidsを追加するだけで、ユーザーが詳細を更新するたびにすべてのユーザーの友だちノードで更新できます。

+0

あなたが問題を解決するのに役立ったら、 –

+0

を知らせて、アップしてください。あなたの問題が解決した場合は、問題を解決できるようにマークしてください。ありがとう – Anmol

関連する問題