有什么办法可以同时update
和push
?
我想更新对象中的key2
,并在单个请求timeline
中同时在ref().child('object').update({...})
下按下唯一键。
object
key1:
key2: // update
key3:
timeline:
-LNIkVNlJDO75Bv4: // push
...
在这种情况下,是否甚至有可能打两个电话?
答案 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');
}
});