Firebase TypeError:childSnapshot.child(...)。set不是函数

时间:2016-05-04 18:55:34

标签: javascript node.js web firebase

我有一个节点文件,用于读取Firebase中每个孩子的数据。

在每个孩子身上,我想设置一个特定孩子的值,但是我收到了一个"设置"不是一个功能。

我可以访问该孩子的值,然后打印它的键,但我不知道为什么我不能调用set。

以下是我的代码的快照:

myFirebaseRef.once("value", function(snapshot) {
  snapshot.child("Locations").forEach(function(childSnapshot) {
    var startTime = childSnapshot.child("Start Time").val();
    var endTime = childSnapshot.child("End Time").val();
    var currentTime = getTimeStr();

    if(startTime == currentTime) {
      console.log("inside start time");
      childSnapshot.child("Is Available").set('True');
    }

    if(endTime == currentTime) {
      console.log("inside end time");
      childSnapshot.child("Is Available").set('False');
    }
  });
});     

1 个答案:

答案 0 :(得分:2)

快照是拍摄快照时数据库中数据的不可变表示形式。因此,您无法set()快照上的值。

可以做的是为数据库中的同一位置设置一个新值:

childSnapshot.childSnapshotd("Is Available").ref().set('True')

然后您将获得一个新的value事件,其中包含一个包含新值的快照。