我有一个节点文件,该文件读取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
事件,该事件将包含具有新值的快照。