使用startAt时未调用值回调

时间:2013-12-17 14:26:19

标签: node.js callback firebase

当我将startAt(priority)添加到on(“value”,fn)调用时,我不会在创建节点后获得回调。

var myDataRef = firebaseRef.push(data);  
myDataref.startAt(200).on("value", fn(snap) { blah });

我的设置:

  • 我有一个将数据推送到Firebase的客户端。
  • 客户端在上面步骤中返回的数据引用中添加值回调。
  • 我有一个使用的服务器组件使用firebase-work-queue从Firebase到达时提取项目。但是,我没有从队列中删除项目,而是将项目的优先级设置为100,以便将其标记为工作人员声称的。
  • 然后服务器组件对数据执行操作,完成后更新数据并将优先级设置为200.将任务标记为已完成。

在客户端,如果我不使用startAt(200),我会得到以下回调:

  1. 首次推送数据时的空值。
  2. 然后我收到了我实际推送的数据的回调。
  3. 最后,我在更新数据并设置优先级200时收到回调。
  4. 当服务器声明队列条目并将优先级设置为100时,您会注意到我没有得到回调。我注意到只更改节点的优先级不会产生值回调。我想这在技术上是正确的,因为你没有改变价值,只改变优先权。技术上正确是最好的正确。

    我构造了我的代码以忽略步骤1中的无关回调& 2以上。但我想使用startAt(200)来阻止这些回调。但是当我应用startAt(200)时,我只得到第一个带有空数据的回调(步骤1)。这没有意义,因为它甚至没有优先权。

    所以我的问题是这里发生了什么?

0 个答案:

没有答案