如何在Firebase聊天应用程序-Android中管理朋友

如何在Firebase聊天应用程序-Android中管理朋友,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在开发Firebase聊天应用程序 我已实施Firebase电子邮件/密码身份验证。因此,当用户成功注册时,我有一个代码,通过该代码,在每次注册/注册时,应用程序都会在uid节点下的Firebase数据库中存储用户详细信息,如姓名、电子邮件等 然后,用户使用电子邮件id搜索朋友, 如果firebase数据库中存在具有该电子邮件id的uid,则函数返回true 然后,应用程序将该电子邮件id添加到 <FirebaseApp> <users> .

我正在开发Firebase聊天应用程序

我已实施Firebase电子邮件/密码身份验证。因此,当用户成功注册时,我有一个代码,通过该代码,在每次注册/注册时,应用程序都会在uid节点下的Firebase数据库中存储用户详细信息,如姓名、电子邮件等

然后,用户使用电子邮件id搜索朋友, 如果firebase数据库中存在具有该电子邮件id的uid,则函数返回true

然后,应用程序将该电子邮件id添加到

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

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

…用户详细信息。。。
:已搜索电子邮件//此处添加朋友的电子邮件id
添加新朋友后, 我正在使用recyclerview显示好友列表。 因此,应用程序检索friends>>当前用户uid>>下的所有节点

正如我的数据库结构所描述的,我只在friends数据库中保存了friends uid

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

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

但是使用for each循环检索每个朋友的其他详细信息,然后存储在数组列表中,然后将该数组列表分配给适配器,然后显示给RecycleView。这是一个非常耗时的过程

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

因此,每次活动开始时,遵循上述所有步骤,都将是一个漫长的过程

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

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

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

如何在Firebase应用程序中创建类似whatsapp的好友列表,在该应用程序中,每个用户的好友列表将始终使用其好友详细信息进行更新。
此外,将不会进行任何冗长的过程。

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


您只需在每个用户中保存
contract\u Friends
标记,其中只需添加好友列表用户所在的所有
UID
,这样每当用户更新任何详细信息时,您都可以在每个users Friends节点中更新它。

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


您只需在每个用户中保存
contract\u Friends
标记,其中只需添加好友列表用户所在的所有
UID
,这样每当用户更新任何详细信息时,您也可以在每个users-Friends节点中更新它。

我会尝试让您知道它是否有助于解决您的问题,然后请向上投票,如果它解决了你的问题,那么请把它标记为答案,这样问题就可以结束了。Thanksi将尝试让您知道它是否帮助您解决了问题,然后请进行投票,如果它解决了您的问题,那么请将其标记为答案,以便结束问题。谢谢