如何在firebase中获取对象的先前值(on value)?

时间:2016-07-12 09:33:21

标签: javascript firebase firebase-realtime-database

示例代码如下所示:

Firebase Database
   name: Sonich

when changed value
   name: Sonita


FirebaseRef.on('value', function(snapshot) {
  var previous_name= ?;//Sonich
  var new_name = snapshot.val(); //Sonita
});

1 个答案:

答案 0 :(得分:1)

我想你想要在节点发生变化时检索它的前一个值。

Firebase没有为您提供解决方案,您应该将之前的值存储在某处。

我的解决方案是将以前的值存储在节点的子节点上。你可以这样做:

1)当您想更新值时:

var new_name = "Sonich"
FireBaseRef.once('value', function(snapshot) {
  var prev_name= snapshot.val(); // Sonta
  FireBaseRef.set({
    "value": new_name,
    "prev_value": prev_name
  })
});

2)这样你就可以检索这个值:

FireBaseRef.on('value', function(snapshot) {
  snapshot = snapshot.val()
  var previous_name= snapshot.prev_value;//Sonich
  var new_name = snapshot.value; //Sonita
});