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

标签 javascript node.js web firebase

我有一个 Node 文件,可以读取 Firebase 中每个 child 的数据。

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

我可以访问那个 child 的值,并打印它的键,但我不确定为什么我不能调用 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 事件,其中将包含具有新值的快照。

关于javascript - Firebase TypeError : childSnapshot. child(...).set 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37035783/

相关文章:

node.js - 来源显得神秘

javascript - 通过弹出窗口中的 .load 加载页面

javascript - 沿 es6 模块生活

xml - 如何使用 Node 从 URL 解析 XML

cookies - 设置 cookie header 不起作用

php - 通过两个步骤/两种形式登录(不意味着 2 因素身份验证!)

javascript - 对状态中的数组值进行计数时超出最大更新深度

javascript - Bootstrap 单选按钮在 flask 中不起作用

javascript - 使用 Nginx 在端口上绑定(bind) Node.js 应用程序

javascript - 在不编辑服务器代码的情况下在 node.js 中捕获控制台输出