为了账号安全,请及时绑定邮箱和手机立即绑定

如何在给定特定子键的情况下获取所有父键

如何在给定特定子键的情况下获取所有父键

慕森王 2022-01-07 13:13:40
我想返回一个包含给定子键的父键数组。这是我的数据库(成员用户 ID 以及他们所在的每个组的 ID):例如:如果我提供-Lu3Zs4FCW6F4IcMSU8K它应该返回两个父键,SnGXDFilErWEqFxPgWY5bIIAnPA3并且 t1S9N9owgKRGqBaNxs02rru8GpD3.如果我提供-Lu3gCYh5QUplnwLdOFA它应该只返回t1S9N9owgKRGqBaNxs02rru8GpD3子值(0 或 1)未知。这是我到目前为止所尝试的:var members = [];return await firebase.database().ref('members').orderByChild(groupId).once('value', snap => {    snap.forEach(data => {        members.push(data.key);    });}).then(() => {    return members;});但是无论我提供什么子键,此代码都会返回两个成员键。任何帮助,将不胜感激。
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

您当前的数据结构允许您有效地查找给定成员的组。但是,它不允许您有效地找到给定组的成员。


要允许后一种用例,请考虑添加一个与您现在拥有的几乎相反的额外数据结构:


"groups": {

  "-Lu3Zs4FCW6F4IcMSU8K": {

    "SnGXDFilErWEqFxPgWY5bIIAnPA3": true,

    "t1S9N9owgKRGqBaNxs02rru8GpD3": true

  },

  "-Lu3gCYh5QUplnwLdOFA": {

    "t1S9N9owgKRGqBaNxs02rru8GpD3": true

  }

}

现在,您可以像查找成员的组一样查找组的成员。


查看完整回答
反对 回复 2022-01-07
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信