Firebase基本承诺回归

时间:2016-10-29 03:43:03

标签: javascript firebase promise firebase-realtime-database

这是一个非常基本的问题,所以我提前道歉。但是我一整晚都在苦苦挣扎。我有一个简单的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")
});

提前感谢您的帮助!

2 个答案:

答案 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")
 });