Добавить массив ко всем узлам в запросе - Firebase JS - PullRequest
0 голосов
/ 19 сентября 2018

Я получил и структура так:

{'-LH88EMN8Q0Mh5ZxbXyx':{
  u_id: 101,
  g_id: 6064,
  members:[101, 102]
  last_msg:'testing'
},
 '-eyJ0eXAiOiJKV1QiLC':{
  u_id: 102,
  g_id: 6065,
  members:[101, 102],
  last_msg:'testing'
},
etc
}

Я использую запрос для восстановления каждого элемента с идентификатором группы;но мне нужно добавить к каждому взаимодействию в запросе массив с текущим user_id.Что-то вроде:

firebase.database().ref('msgs').orderByChild('g_id').equalTo(gID) .update({ dBy: [user_id] });

Но не распознавать эту функцию;или ничего не происходит.

1 Ответ

0 голосов
/ 19 сентября 2018

База данных Firebase Realtime может записывать данные, только если ей известно точное местоположение для записи.Он не поддерживает что-то вроде запросов на обновление, которые вы, возможно, знаете из SQL.

Это означает, что вам нужно присоединить слушателя к запросу и обновить каждый отдельный результат оттуда.

Это будет выглядеть примерно так:

firebase.database().ref('msgs').orderByChild('g_id').equalTo(gID)
    once("value", function(snapshot) {
        snapshot.forEach(function(child) {
            child.ref.update({ dBy: [user_id] });
        });
    });
...