Firebase数据库更新/设置导致错误/不一致的结果

时间:2016-12-29 01:12:42

标签: node.js rest firebase firebase-realtime-database

我正在用Firebase编写一个REST api作为我的数据库并且有一个服务/用户支持PUT来更新对象users /:userId 该对象具有以下结构

users : {
  user_id_1 : {
    user_name : 'BATMAN',
    user_photos : {
      'FBKEY1' : {
        'photourl' : 'https:...'
      },
      'FBKEY2' : {
        'photourl' : 'https:...'
      }
    }
  }   
}

FBKEY1和FBKEY2是使用Firebase推送生成的,任何客户端都可以对API执行更新(PUT)操作:/ users / user_id_1

更改user_name的示例我从客户端调用以下内容:

return usersFirebaseRef.child('user_id').once('value').then(function (snap) {
  var snapObject = snap.val();
  var user = {
    user_name : updateDataObjFromClient.user_name ? updateDataObjFromClient.user_name : snapObject.user_name,
    user_photos : snapObject.user_photos
  };
  return usersFirebaseRef.child('user_id').set(user);
});

上面注意我只是尝试更新user_name而不是user_photos,user_name属性更新得很好然而user_photos在firebase中的很长时间(1分钟+)和'FBKEY1'和'FBKEY2'之后得到更新改变为不同的东西(这就像推动重新发生的新键)。我不知道为什么会这样。此外,它并不总是一致的,即有时'FBKEY1'和'FBKEY2'甚至不会最终在Firebase中创建。不确定我做错了什么。

0 个答案:

没有答案