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

时间:2017-02-10 06:15:28

标签: ios swift firebase firebase-realtime-database

您好我正在使用Swift和Firebase处理聊天应用,我在获取现有数据和新数据时遇到了一些问题。

  1. 我的第一个问题是Firebase在使用.childAdded(默认设计)观察时确实获取了每个新的和已存在的数据,当一个新用户被添加到现有聊天时,它已经存在的消息,我该怎么说应用程序只获取新邮件?因为新添加的用户不应该获取旧的现有消息。
  2. 我考虑过在添加用户时使用时间戳并按其过滤,但这是获取所有数据和过滤器的好方法吗?

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

1 个答案:

答案 0 :(得分:2)

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

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

 )}

和第二个问题

您可以保存上次看到的消息时间(例如WhatsApp随时间推移)并且可以在此之后显示任何消息作为新消息。

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