这是一个非常基本的问题,所以我提前道歉。但是我一整晚都在苦苦挣扎。我有一个简单的firebase数据库查询...我知道它工作..我使用child_added所以它会为我查询的每个不同的节点返回几次。
然后我在完成调用后尝试补充一个回调。现在它将返回大约10个不同的值,因此我的目标是在数据库引用完成后使用promise或某种回调来运行代码。
var getIsStarred = getFirebase().database().ref('feed/value').on('child_added').then(function(snapshot) {
console.log("JX10: ok")
});
Promise.(getIsStarred).then(function(results) {
console.log("JX10: end promise thing okay sick")
});
提前感谢您的帮助!
答案 0 :(得分:2)
Firebase的on()
功能文档在这里:https://firebase.google.com/docs/reference/js/firebase.database.Reference#on
正如您所看到的,它需要回调,并且还返回回调,以便在需要时可以将其用作off()
调用的参数。它似乎不会在任何地方返回承诺。
答案 1 :(得分:2)
听起来你在所有孩子都被加载后尝试运行一个动作。您可以使用once('value'
处理程序执行此操作:
var getIsStarred = getFirebase().database().ref('feed/value').once('value').then(function(snapshot) {
console.log("the initial items have been loaded")
});