Firebase实现Web的一对一聊天功能

4

我实现了友好的聊天,但那是群聊。我对Firebase很陌生。需要文档来创建一对一的Web聊天。如何获取用户账户列表并选择单个用户发送消息?请帮帮我。


您是否曾经阅读过此文档?https://firebase.google.com/docs/cloud-messaging/ - Malik Kashmiri
是的,但 Firebase 云消息传递(FCM)用于向多个设备推送通知。如果 FCM 可以像 Facebook Messenger 一样用于聊天应用程序,那么该如何实现? - Vyas Reddy
你能够实现它吗? - Anubhav Gupta
是的,我很久以前就实现了它! - Vyas Reddy
2个回答

3
如果进行通信的用户具有用户ID uid_1 和 uid_2。
数据库结构应如下:
contacts
   --uid1
       --uid2
       --uid3
       -- so on (1)
   --uid2
       --uid1
       --uid4
       -- so on (2)
messages
   --uid1
       --uid2
           -- Push messages here.(3)
   --uid2
       --uid3
           -- Push messages here also.(4)

添加联系人

如果用户1认识用户2,您可以将用户2添加到位置(1)并将用户1添加到位置(2)。由于使用用户ID进行实现,如果他们知道对方的uid,用户就可以发送消息。您可以发送聊天邀请来交换uid。

添加消息

如果用户1或用户2发送消息,请在位置(3)和(4)处添加。这种实现方式可以确保即使用户1删除了与用户2的对话,用户2仍将拥有一份副本,从而确保隐私。

这些是制作基本的一对一Firebase聊天应用程序的关键要素。

注意:Firebase在成功验证后提供用户ID。


-1

也许你可以将问题分解成单独的里程碑,并在每个里程碑需要帮助时学习 Firebase 的工作原理。

根据你所写的,你需要:

  • 验证用户(https://firebase.google.com/docs/auth/
  • 将这些用户配置文件保存到实时 Firebase 数据库中,数据结构如下(https://firebase.google.com/docs/database/
  • 在列表/RecycleView 中列出这些用户(learnhowtoprogram.com/android/data-persistence/firebase-recycleradapter)
  • 通过适配器中引用的子节点监听来管理对话,这些子节点充当两个人之间的房间。

考虑如何使你的结构尽可能高效,例如不要在每个用户下面保存两次对话,而是保存到一个单独的“对话”节点的引用。

我最近在我的基于位置的应用程序(Occupapp)中实现了这一点,如果你想要一个实时的例子。你将需要注册、添加服务并从另一台设备登录,然后选择该服务与所有者聊天。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接