我正在开发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,我会在每个用户的好友列表中随时更新他/她的朋友详细信息。 此外,不会进行任何漫长的过程。
答案 0 :(得分:2)
最好的方法是在friends节点中保存所有必要的细节。
您可以在每个用户中保存Opposite_Friends
标记,只需在其朋友列表中添加所有uids
用户,这样每当用户更新任何详细信息时,您都可以在每个用户中更新用户朋友节点。