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

在每个孩子上,我想设置一个特定孩子的值,但是我收到一个TypeError,即“ set”不是一个函数。

我可以访问该子项的值,并打印它的密钥,但是不确定为什么我不能调用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');
    }
  });
});

最佳答案

快照是获取快照时数据库中数据的不变表示。因此,您不能在快照上set()一个值。

您可以做的是将新值设置为数据库中的相同位置:

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


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

10-06 11:37