snapshot.ref不是一个函数

Mr.*_*hil 9 snapshot node.js firebase firebase-realtime-database

我正在尝试从快照更新字段,但即使快照不为空并且打印正确,我似乎无法使用ref.update()它.我试着按照这个答案.我在这里错过了什么?

我的代码:

 ref.limitToLast(1).on('child_added', function(snapshot) {
    console.log(snapshot.val());
    var serial_number = String(snapshot.child("serial").val()); // 
    console.log(serial_number);
    snapshot.ref().update({ signed: 'true' });
// ...
}
Run Code Online (Sandbox Code Playgroud)

输出:

产量

car*_*ant 15

问题是您引用的答案使用的是以前版本的Firebase,虽然API非常接近当前版本,但存在一些差异.

有一个指南讨论了从Firebase版本2和版本3升级时的更改以及需要执行的操作.

特别是,许多无参数的getter已被更改为只读属性:

之前

// Reference
var key = ref.key();
var rootRef = ref.root();
var parentRef = ref.parent();

// Query
var queryRef = query.ref();

// DataSnapshot
ref.on("value", function(snapshot) {
  var dataRef = snapshot.ref();
  var dataKey = snapshot.key();
});
Run Code Online (Sandbox Code Playgroud)

// Reference
var key = ref.key;
var rootRef = ref.root;
var parentRef = ref.parent;

// Query
var queryRef = query.ref;

// DataSnapshot
ref.on("value", function(snapshot) {
  var dataRef = snapshot.ref;
  var dataKey = snapshot.key;
});
Run Code Online (Sandbox Code Playgroud)