猿问

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

我想返回一个包含给定子键的父键数组。

这是我的数据库(成员用户 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;

});

但是无论我提供什么子键,此代码都会返回两个成员键。任何帮助,将不胜感激。


慕森王
浏览 135回答 1
1回答

大话西游666

您当前的数据结构允许您有效地查找给定成员的组。但是,它不允许您有效地找到给定组的成员。要允许后一种用例,请考虑添加一个与您现在拥有的几乎相反的额外数据结构:"groups": {  "-Lu3Zs4FCW6F4IcMSU8K": {    "SnGXDFilErWEqFxPgWY5bIIAnPA3": true,    "t1S9N9owgKRGqBaNxs02rru8GpD3": true  },  "-Lu3gCYh5QUplnwLdOFA": {    "t1S9N9owgKRGqBaNxs02rru8GpD3": true  }}现在,您可以像查找成员的组一样查找组的成员。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答