一尘不染

Firebase类型为.childAdded的观察每次都会检索我的所有信息。请协助

swift

根据Firebase文档:

为每个现有子项触发一次ChildAdded,然后每次将新子项添加到指定路径时再次触发

因此,我有一个应用程序,该应用程序的顶部带有一个小横幅,每次用户收到新消息时都会弹出。如您所料,这些消息存储在Firebase用户对象的子级中。因此,这就是问题所在,当我加载该应用程序时,它会弹出以显示用户收到的每条消息。是否可以仅在添加新孩子时才调用此观察事件?我不希望仅在添加一个新孩子时为每个现有孩子触发该事件。我讨厌必须将消息引用存储在核心数据中,并检查每个孩子是否已经在核心数据中存在它:/


阅读 221

收藏
2020-07-07

共1个答案

一尘不染

一些方法可以做到这一点:

  • ref.queryLimitedToLast(1)开始时使用。请参阅Firebase,仅接收新孩子。
  • 跟踪您在本地存储中获得的最新密钥,然后使用 queryOrderByKey().queryStartingAtValue(latestKey)
  • 将时间戳记添加到项目中,然后再添加时间戳记> =现在的项目。了解如何在Firebase数据库中丢弃初始数据queryOrderByChild("timestamp").queryStartingAt(now)
2020-07-07