Swift-构建聊天应用程序的Firebase数据



你好,我实际上正在使用Swift和Firebase开发一个聊天应用程序,在获取现有数据和新数据时遇到了一些问题。

  1. 我的第一个问题是,由于Firebase在观察使用.childAddled(默认设计)时确实会获取所有新的和已经存在的数据,当一个新用户被添加到一个已有消息的现有聊天中时,我该如何告诉应用程序只获取新消息?因为新添加的用户不应该获取旧的现有消息

我曾想过使用添加用户的时间戳并进行过滤,但这是获取所有数据和过滤的好方法吗?

  1. 第二个与第一个类似,我让我的应用程序在注销时清除所有数据,并在登录时获取与该用户相关的数据。我目前正在使用相同的观测器来获取登录时获取的数据和新消息。在这种情况下,我无法判断该消息是现有消息还是新消息,我需要设置正确的应用程序图标徽章未读新消息的数量

对于这两种情况,我应该使用不同的观察者吗?

对于您的第一个问题,您可以使用firebase查询

let query = ref.queryOrdered(byChild: messageTime).queryStarting(atValue: timeUserAdded, childKey: messageTime )
query.observe(of: .childAdded, with: {(snapshot) in
)}

对于第二个问题

你可以保存最后一次看到的消息时间(就像WhatsApp对时间的处理一样),并可以将该时间之后的任何消息显示为新消息。

希望这能有所帮助,问问你是否有任何困惑。

最新更新