在我的应用程序中,我有以下侦听器,它最初获取所有子元素,然后是每个新添加的子元素:
onChildAdded(queryRef, function(messageSnapshot) {
let data = messageSnapshot.val()
// The following log is ran multiple times on the inital run(once for each child element)
console.log(data)
});
字符串
我想检测侦听器何时完成并收集了初始运行时的所有数据。目前,它记录每个单独的子对象,一次一个。相反,我想记录一个包含所有子对象数据的对象。为了做到这一点,我需要一种方法来检测初始运行何时完成,以及所有子对象何时被初始获取。
搜索后,我找不到任何解决方案或内置的方法来实现这一点。谢谢。
1条答案
按热度按时间qyswt5oh1#
如果只有
onChildAdded
,则无法确定初始数据何时加载。为此,您需要使用onValue
,或者同时使用onChildAdded
* 和 *onValue
。第二种情况的示例:
字符串
现在,您将首先看到一些这样的行:
错的,
错的,
错的,
一旦所有的初始数据都加载完毕,并且添加了一个新的子节点,您将看到:
说真,
这一点已经讨论过很多次了,所以我建议您查看:
这些帖子中的许多可能使用了命名空间的JavaScript API,但是我在回答您上一个问题时提供的Upgrade from the namespaced API to the modular API的链接应该会告诉您如何转换这些代码。