Firebase实时数据库:查询参考节点,然后查询相同参考的子节点

时间:2020-03-18 01:24:33

标签: javascript firebase firebase-realtime-database

我正在Firebase上编写Web应用程序,并希望执行以下查询:
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
    })
})
}

在不另作参考的情况下存储建议数组的方法是什么? 任何建议都将受到欢迎。谢谢!

0 个答案:

没有答案