如何管理Firebase聊天应用中的朋友 - Android

时间:2017-10-13 06:34:56

标签: android firebase firebase-realtime-database

我正在开发Firebase聊天应用。

我已实施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来显示朋友列表。 因此,该应用程序将检索朋友下的所有节点&gt;&gt;当前用户的uid&gt;&gt;

正如我的数据库结构所描述的那样,我只在朋友数据库中保存了朋友uid。

在第一步,用户将只有朋友的电子邮件ID。让我们在列表friendsList中说。

然后我使用此friendsList来检索朋友的所有其他详细信息,例如个人资料图片,姓名,联系人等等...保存在用户节点下。

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

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

因此,每次活动开始后,按照上述所有步骤,将会进行一个漫长的过程。

除此之外,我有另一种方式,我可以在朋友节点下保存其他朋友的详细信息。比如新朋友添加到数据库时的姓名,联系方式等。

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

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

如何在我的Firebase应用中创建类似朋友列表的whatsapp,我会在每个用户的好友列表中随时更新他/她的朋友详细信息。 此外,不会进行任何漫长的过程。

1 个答案:

答案 0 :(得分:2)

最好的方法是在friends节点中保存所有必要的细节。

您可以在每个用户中保存Opposite_Friends标记,只需在其朋友列表中添加所有uids用户,这样每当用户更新任何详细信息时,您都可以在每个用户中更新用户朋友节点。