有没有办法同时update
和push
?
我想更新我的对象中的 key2
并在单个请求 ref().child('object') 中同时推送
.timeline
下的唯一键.update({...})
object
key1:
key2: // update
key3:
timeline:
-LNIkVNlJDO75Bv4: // push
...
在这种情况下是否有可能或应该进行两次调用?
最佳答案
调用 push()
没有参数将立即返回(不保存到数据库),为您提供一个独特的Reference
。这使您有机会在不访问数据库的情况下创建唯一 key 。
例如,要获得唯一的推送 key ,您可以执行以下操作:
var timelineRef = firebase.database().ref('object/timeline');
var newTimelineRef = timelineRef.push();
var newTimelineKey = newTimelineRef.key;
有了这个,您就可以执行使用新 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');
}
});
关于javascript - Firebase DB 同时更新和推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53222590/