2017-10-13 74 views
0

我正在开发Firebase聊天应用。如何管理Firebase聊天应用中的朋友 - Android

我已经实施Firebase电子邮件/密码认证。所以,当用户注册成功时,我有一个代码,通过它在每个注册/注册应用程序中存储用户详细信息,如名称,电子邮件等,在uid节点下的Firebase数据库中。

然后,使用一个电子邮件ID, 如果与电子邮件ID的UID出现在火力数据库的朋友的用户搜索,该函数返回true,

然后,应用程序,补充说,电子邮件ID

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

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

下添加新的朋友, 后,我使用的是recyclerview显示好友列表。 因此,该应用程序检索朋友下的所有节点>>当前用户的uid >>

由于我的数据库结构描述我只有在好友数据库中保存朋友uid。

在第一步,用户将只有朋友的电子邮件ID。假设列表friendsList

然后我用这个friendsList来检索朋友的所有其他细节,比如个人资料图片,姓名,联系人等等,它保存在用户节点下。

但是使用每个循环检索每个朋友的其他细节,然后存储在数组列表中,然后将该arrayList压缩到适配器,然后显示到recyclerview。是一个非常耗时的过程。

因为它也可以有其他的功能。如将Base64图像转换为位图等。

因此,每次活动开始时,遵循上述所有步骤,将会产生漫长的过程。

其他的这个,我有另外一种方式,我朋友节点下的朋友也可以节约其他的细节。像一个新朋友加入数据库时​​的名称,联系方式等。

但是又出现了另一个问题。 是的,我也可以存储朋友的其他详细信息......但如果朋友更新他的个人资料图片,联系怎么办?

所以,这个程序不适合我的情况。

如何在我的Firebase应用程序中创建WhatsApp喜欢的朋友列表,其中每个用户的朋友列表都会随时更新他/她的朋友详细信息。 也不会在任何漫长的过程下进行。

回答

2

最好的方法是将所有必要的详细信息保存在朋友节点中。

你可以只保存Opposite_Friends标签中的每个用户,在刚刚添加的所有在其好友列表中的用户uids存在,所以,每当用户更新任何细节,你可以在每一个用户的好友节点更新它。

+0

我会尽力让你知道 –

+0

如果它帮助你解决你的问题,那么请upvote,如果它解决了你的问题,那么请标记为答案,以便可以关闭问题。谢谢 – Anmol

相关问题