首页 > 解决方案 > 如何进行firebase多路径推送?

问题描述

我看过多路径更新示例。但在更新任何数据之前,我必须首先推送它,我想知道是否有所谓的多路径推送?

我想同时在不同的节点集下推送数据。例如:Firebase 方案

-Examinations
  - pushIdLk12203425
  - pushIdML0124245
-RightChoices
  - pushIdLk12203425
  - pushIdML0124245
-Questions
  - pushIdLk12203425
  - pushIdML0124245

当我在检查节点下推送值时,必须将根据我的后端架构的相同值或不同值推送到 RightChoices 和 Questions 节点下。现在我正在使用 .then 回调方法执行此操作。

我在 Exams 下推送数据,然后在其 .then 回调中推送 RightChoice 和 Questions 节点。

但我担心的是,如果用户关闭应用程序并且数据只是到达考试节点而从未到达 RightChoices 和 Questions 节点怎么办。

我正在尝试找出一种更好的数据一致性方法。

谢谢。

注意:RightChoices 和 Questions 保存在不同的节点下,以获得更好的安全架构,我无法更改架构。如果有人可以帮助我,将不胜感激。谢谢。

标签: javascriptfirebasefirebase-realtime-database

解决方案


我想你正在寻找.update()

看看这里: https ://firebase.google.com/docs/database/web/read-and-write#update_specific_fields :

function writeMultipath(pushID1, pushID2) {

  var data = {
    id1: pushID1,
    id2: pushID2
  }; 

  // Write the new data simultaneously to your DB-locations
  var updates = {};
  updates['/Examinations/'] = data;
  updates['/RightChoices/'] = data;
  updates['/Questions/'] = data;

  return firebase.database().ref().update(updates);
}

推荐阅读