Firebase多路径推送怎么办?

时间:2018-08-28 03:24:19

标签: javascript firebase firebase-realtime-database

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

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

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

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

我在“考试”下推送数据,然后在其.then回调中推送“ RightChoice and Questions”节点。

但是,我担心的是,如果用户关闭应用程序并且数据仅到达“考试”节点而从未到达“ RightChoices和问题”节点,该怎么办?

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

谢谢。

注意:RightChoices和Questions保留在不同的节点下,以具有更好的安全性体系结构,并且我无法更改架构。 如果有人可以帮助我,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找.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);
}