首页 > 解决方案 > 如何在给定特定子键的情况下获取所有父键

问题描述

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

这是我的数据库(成员用户 ID 以及他们所在的每个组的 ID):

数据库.

例如:

子值(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;
});

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

标签: javascriptfirebasereact-nativefirebase-realtime-database

解决方案


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

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

"groups": {
  "-Lu3Zs4FCW6F4IcMSU8K": {
    "SnGXDFilErWEqFxPgWY5bIIAnPA3": true,
    "t1S9N9owgKRGqBaNxs02rru8GpD3": true
  },
  "-Lu3gCYh5QUplnwLdOFA": {
    "t1S9N9owgKRGqBaNxs02rru8GpD3": true
  }
}

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

另请参阅我的答案:


推荐阅读