Firebase数据库同时更新和推送

时间:2018-11-09 09:00:07

标签: javascript firebase firebase-realtime-database

有什么办法可以同时updatepush

我想更新对象中的key2,并在单个请求timeline中同时在ref().child('object').update({...})下按下唯一键。

object
  key1:
  key2: // update
  key3:
  timeline:
    -LNIkVNlJDO75Bv4: // push
    ...

在这种情况下,是否甚至有可能打两个电话?

1 个答案:

答案 0 :(得分:1)

不带参数的调用push()将立即返回(不保存到数据库),为您提供唯一的Reference。这使您有机会创建唯一密钥而无需访问数据库。

例如,要获取唯一的按键,您可以执行以下操作:

var timelineRef = firebase.database().ref('object/timeline');
var newTimelineRef = timelineRef.push();
var newTimelineKey = newTimelineRef.key;

通过此操作,您可以执行利用新密钥的多级更新:

var objectRef = firebase.database().ref('object');

var updateData = {};
updateData['object/key2'] = { key: 'value' };
updateData['object/timeline/' + newTimelineKey] = { key: 'value' };

objectRef.update(updateData, function(error) {
  if (!error) {
    console.log('Data updated');
  }
});