每次加载项目列表时,我都意识到调用了child_added事件,但是为什么呢?不应该仅在将新的孩子添加到数据库时才调用此事件吗?
答案 0 :(得分:2)
首次添加侦听器时,将始终为节点下的 all 个现有子对象调用添加了子对象的侦听器。然后,当添加新的子代时,侦听器将继续被调用。这是预期的行为。它使您的代码可以始终与该节点的全部内容保持同步。
如果您只想听最近添加的子代,则必须提出一个查询,该查询涉及查看每个子代中的时间戳字段,以找出您的代码是否感兴趣。
答案 1 :(得分:2)
来自https://firebase.google.com/docs/database/admin/retrieve-data#child-added
child_added
为每个现有子级触发一次,然后每次将新子级添加到指定路径时再次触发。
要解决这个问题,已经有几篇文章回答了这个问题:
答案 2 :(得分:1)
因为(在我看来)这是填充列表的便捷方法,所以您只能使用添加或删除事件,而不能像这样直接使用加载。
假设您在ios或android中有列表。您需要的是: