javascript - Firebase DB 同时更新和推送

标签 javascript firebase firebase-realtime-database

有没有办法同时updatepush

我想更新我的对象中的 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/

相关文章:

javascript - firebase 文档引用 grecaptcha 但从不导入或定义它

json - 从 Firebase Swift 读取两个数据模型

ios - 无法将类型 ‘NSNull’ (0×106a4f520) 的值转换为 ‘NSDictionary’

javascript - javascript下如何使用onchange事件

javascript - 有没有办法跨文件在 JavaScript 中创建全局对象?

javascript - 如何从自定义 Kendo UI 数据源访问 Javascript 函数

firebase - NoSuchMethodError:类 'QuerySnapshot'没有实例方法 '[]'

android - firebase 函数触发通知

javascript - JS cookie div 可见性

javascript - 如何在 Windows 8/Cordova 应用程序中打开本地 PDF?