snapshot.ref 不是函数

snapshot.ref is not a function

我正在尝试从快照更新字段,但即使快照不为空且打印正确,我似乎也无法在其上使用 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' });
// ...
}

输出:

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

有一个 guide 讨论了变化以及从 Firebase 版本 2 和版本 3 升级时需要做什么。

特别是,many no-argument getters have been changed to read-only properties:

BEFORE

// 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();
});

AFTER

// 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;
});