База данных реального времени Firebase: запросите ссылку на узел, а затем запросите дочерний узел с той же ссылкой - PullRequest
0 голосов
/ 18 марта 2020

Я пишу веб-приложение для Firebase и хочу выполнить следующий запрос:
1. Получить данные пользователя и сохранить их как объект.
2. Получите информацию о рекомендациях, полученных пользователем - сохраненных как дочерний узел вышеупомянутого узла, и сохраните их как массив.

Вот структура данных:

"users_new": {
"the_uid_of_the_user" : {
  "intro" : "",
  "profile_picture" : "",
  "recommended" : {
    "-Ly5BN73l0y1I1--1Qe0" : {
      "reco_user" : "the_uid_of_the_recommended_user",
      "time" : 1578504389286
    },
    "-Ly5KImVVNaqC9bTHU10" : {
      "reco_user" : "the_uid_of_the_recommended_user",
      "time" : 1578506730832
    }
  },
  "username" : ""
  }
}

Вот часть запроса, который я изначально написал. Проблема в том, что он загрузит все «рекомендуемые» узлы сразу, и в результате будет возвращен не массив.

let profileinfo=[];
let recoarray=[];

const userinfo = () => {
    const k = //some code to get the user's username;
    const ref1=firebase.database.ref('users');
    ref1.orderByChild('username').equalTo(k).once('value', (snapshot) => {
    snapshot.forEach((pdata) => {
        profileinfo.push(pdata.val());
        recoarray.push(pdata.val()['recommended']); //Not stored as an array
    })
})
}

Каким образом можно хранить массив рекомендаций, не делая другая ссылка? Любой совет будет приветствоваться. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...