首页 文章

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

提问于
浏览
0

您好我实际上正在使用Swift和Firebase进行聊天应用,我在获取现有数据和新数据时遇到了一些问题 .

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

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

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

我应该在这两种情况下使用不同的观察者吗?

1 回答

  • 2

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

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

    而对于第二个问题

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

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

相关问题