Reputation: 1129
I'm trying to update a field from a snapshot, but even though the snapshot is not null and printed correctly, I can't seem to use ref.update()
on it. I tried to follow this answer. What am I missing here?
My code:
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' });
// ...
}
Output:
Upvotes: 10
Views: 6573
Reputation: 58400
The problem is that the answer you are referencing uses the previous version of Firebase and whilst the API is very close to the current version, there are a few differences.
There is a guide that discusses the changes and what needs to be done when upgrading from Firebase version 2 and version 3.
In particular, 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; });
Upvotes: 16