Ios 与Firebase一对一聊天

Ios 与Firebase一对一聊天,ios,firebase,firebase-realtime-database,chat,nosql,Ios,Firebase,Firebase Realtime Database,Chat,Nosql,我想使用Firebase创建一对一的iOS聊天应用程序。我找到的唯一例子是群组聊天的实现,我不知道如何构建一对一聊天的数据库 我的主要问题是:如何收听新的聊天/信息?假设user1想与user2聊天,但他们以前从未交谈过。user1如何向user2发送消息 有人能为我指出与Firebase实现一对一聊天的正确方向吗 谢谢 这是一个非常高级的结构 uid_0将观察其传入的_消息节点,uid_1将观察其传入的_消息节点 uid_1向uid_0发送一条消息,该消息将具有一个使用childByAutoI

我想使用Firebase创建一对一的iOS聊天应用程序。我找到的唯一例子是群组聊天的实现,我不知道如何构建一对一聊天的数据库

我的主要问题是:如何收听新的聊天/信息?假设user1想与user2聊天,但他们以前从未交谈过。user1如何向user2发送消息

有人能为我指出与Firebase实现一对一聊天的正确方向吗


谢谢

这是一个非常高级的结构

uid_0将观察其传入的_消息节点,uid_1将观察其传入的_消息节点

uid_1向uid_0发送一条消息,该消息将具有一个使用childByAutoId创建的密钥,这将使其成为唯一的消息。uid_0读取它并通过向uid_1传入_消息节点发送消息来响应

这是一个基本的例子,有1000种不同的方法可以做到这一点,所以一旦你开始工作,你可以根据你的用例使用其他的结构来探索这个空间

uid_0
   incoming_messages
    -Y999nsjnss8s
      msg: "hello to uid_0 from uid_1"
      from: "uid_1"

uid_1
   incoming_messages
    -Yu99jis9jms
      msg: "this is uid_0 responding to uid_1 message"
      from: "uid_0

这是一个非常高层次的结构开始

uid_0将观察其传入的_消息节点,uid_1将观察其传入的_消息节点

uid_1向uid_0发送一条消息,该消息将具有一个使用childByAutoId创建的密钥,这将使其成为唯一的消息。uid_0读取它并通过向uid_1传入_消息节点发送消息来响应

这是一个基本的例子,有1000种不同的方法可以做到这一点,所以一旦你开始工作,你可以根据你的用例使用其他的结构来探索这个空间

uid_0
   incoming_messages
    -Y999nsjnss8s
      msg: "hello to uid_0 from uid_1"
      from: "uid_1"

uid_1
   incoming_messages
    -Yu99jis9jms
      msg: "this is uid_0 responding to uid_1 message"
      from: "uid_0

这是一个非常广泛的话题。但是,如果您想知道如何让用户进入同一个聊天室,请参见“谢谢”,这确实让事情变得清晰了一点!但是我如何让user2知道user1给他发了一条消息?user2应该注意哪些数据库更改?这是一个非常广泛的话题。但是,如果您想知道如何让用户进入同一个聊天室,请参见“谢谢”,这确实让事情变得清晰了一点!但是我如何让user2知道user1给他发了一条消息?user2应该注意哪些数据库更改?如何使用这种结构进行分页消息查询?@Birowsky你是在问如何加载一定数量的消息吗?i、 加载最后5条消息或最后10条消息?是的,就像在普通聊天应用程序中一样。然后是上一页,共10页,依此类推。@Birowsky关于如何在这个网站上进行分页,有很多问题/答案。在[docs]()中,您可以使用queryStartingAtValue、queryEndingAtValue和QueryQualtOvalue来选择查询的任意起始点、结束点和等价点。这对于分页数据或查找具有特定值的子项非常有用。尝试在此处搜索“[firebase]分页”,因为以前经常讨论此主题。如果你有一个尚未回答的具体问题,考虑发布它,让我们看一看。谢谢杰伊,但这不是一个关于查询的通用问题。我想问的是,如何专门针对您建议的聊天结构查询消息页面。原因是,消息在不同的父级中,因此,我们不能只从用户A的消息中获取5条,从用户B的消息中获取5条,它们只是不匹配。你如何使用这种结构进行分页消息查询?@Birowsky你是在问如何加载一定数量的消息吗?i、 加载最后5条消息或最后10条消息?是的,就像在普通聊天应用程序中一样。然后是上一页,共10页,依此类推。@Birowsky关于如何在这个网站上进行分页,有很多问题/答案。在[docs]()中,您可以使用queryStartingAtValue、queryEndingAtValue和QueryQualtOvalue来选择查询的任意起始点、结束点和等价点。这对于分页数据或查找具有特定值的子项非常有用。尝试在此处搜索“[firebase]分页”,因为以前经常讨论此主题。如果你有一个尚未回答的具体问题,考虑发布它,让我们看一看。谢谢杰伊,但这不是一个关于查询的通用问题。我想问的是,如何专门针对您建议的聊天结构查询消息页面。原因是,消息在不同的父级中,因此,我们不能从用户A的消息中获取5,从用户B的消息中获取5,它们只是不匹配。