Как сделать firebase многолучевой push? - PullRequest
0 голосов
/ 28 августа 2018

Я видел пример обновления многолучевого распространения. Но прежде чем обновлять какие-либо данные, я должен сначала отправить их, для чего мне было интересно, есть ли что-то, что называется многолучевым распространением?

Я хочу одновременно передавать данные в другой набор узлов. Например: схема Firebase

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

Когда я отправляю значение под узлом обследования, те же значения или другие значения, что и в моей серверной архитектуре, должны быть помещены в узел RightChoices и Questions. Сейчас я делаю это, используя метод обратного вызова .then.

Я отправляю данные в разделе «Экзамены», а затем в обратном вызове .then нажимаю на узел «Правильный выбор и вопросы».

Но меня беспокоит то, что если пользователь закроет приложение, а данные просто достигнут узла Examations и никогда не достигнут узла RightChoices and Questions.

Я пытаюсь найти лучший способ обеспечения согласованности данных.

Спасибо.

Примечание: RightChoices и Questions хранятся в разных узлах для обеспечения лучшей архитектуры безопасности, и я не могу изменить схему. Буду благодарен, если кто-нибудь сможет мне помочь. Спасибо.

1 Ответ

0 голосов
/ 28 августа 2018

Я думаю, что вы ищете .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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...