当前位置: 首页 > 面试题库 >

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

暨承平
2023-03-14
问题内容

根据Firebase文档:

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

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


问题答案:

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

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


 类似资料:
  • 我有一个,它充当提要,从我的Firebase数据库中检索和显示数据。它是窗口的根视图控制器,所以它总是存在的。我的问题是,每当控制器出现时,其观察节点的所有子节点都会被添加到collection视图中。这在最初是很好的,但是当我离开控制器并返回时,所有相同的数据都会被追加,从而创建重复数据。下面是一些伪代码,代表我与Firebase的交互: 在这个伪代码中,我只打印,而不是处理UI,但问题仍然存在

  • 我试图在一个旧的海军网页上抓取产品的URL。然而,它只是给出了产品列表的一部分,而不是全部(例如,当超过8个URL时,只给出8个URL)。我希望有人能帮我找出问题所在。

  • 所以我一直在努力让这个发挥作用。本质上,我正在构建一个聊天应用程序,并依赖childAdded观察者来检查新消息。在我的iOS应用程序中,我使用以下内容:

  • 通过使用泛型,我们可以在编译过程中检测到任何可能的错误。例如 当我们在Java1.5之前使用原始类型而不是泛型时,它需要显式转换。例如, 然而,对于泛型,会发生类型擦除。也就是说,类型信息在运行时丢失。如果,也就是说,JVM如何知道它在运行时检索的对象类型,是字符串对象还是person对象(上面由编译器生成的cast)。但这对泛型有效,这可能会导致运行时错误。 最后,Joshua Bloch在第1

  • 简而言之,我有一个List userIds,它的大小可以从10k到100k,这些都是user_ids的,我的核心逻辑是,对于每user_id,我调用两个不同的rest api终端并获取这些有效负载,然后在有效负载之间进行验证操作 我通过以下方式使用executor服务来加快处理速度,我将记录拆分为批处理和预定义的100个线程,以便1个线程可以处理(int)(userIds.size()/100)个

  • 我在topic1上向Kafka发送了5条消息并成功消费了它们。当我发送第6条消息并尝试消费时,我再次收到所有6条消息,而不是最新的(第6条)消息。 请注意,我正在运行消费者命令行,而不是从数据库连接器(访问模块)。连接器的配置属性auto.offset.reset设置为“最大”。(请查看下面日志中的所有配置属性) 另请参见下面的OffsetChecker输出: 任何人都可以让我知道问题出在哪里?