检测Firebase初始值(值)完成情况

时间:2015-04-07 12:06:31

标签: firebase

当我初始化我的应用以从FB检索我的所有数据时,我正在使用ref.on("value", myfunc)。由于要检索相当多的数据,我想显示加载符号,直到myfunc实际运行。

有没有办法做到这一点?我现在能想到的唯一方法是:

  1. 首先在相关的FB节点上运行hasChildren以检查是否有要接收的数据。
  2. 如果有,则显示加载图像。
  3. on监听器调用myfunc后,隐藏加载图片。
  4. 我只是想知道Firebase是否提供了更优雅的方式吗?

2 个答案:

答案 0 :(得分:1)

我错过了明显的解决方案。将回调函数传递给myfunc意味着我可以启动加载图像并在运行回调函数时将其删除。

答案 1 :(得分:1)

也许我误解了你在做什么,但我认为你甚至不需要致电hasChildren。即使在该位置没有孩子,也会调用传递给ref.on()的回调函数。

以下是一个示例:http://jsfiddle.net/92uabp30/7/

我认为这与你正在做的类似。在这里,我有一个“正在加载...”div和一个“输出”div

function getMyData(){
    $("#loading").show();
    $("#output").hide();

    new Firebase("https://examples-sql-queries.firebaseio.com/user/999").on('value', show);
}

回调函数:

function show(snap) {
    $('pre').text(JSON.stringify(snap.val(), null, 2));
    $("#output").show();
    $("#loading").hide();
}

如果选中https://examples-sql-queries.firebaseio.com/user/999,您会看到它是空的。运行该示例时,您将看到无论如何都要调用回调函数。