Javascript 获取子项的键/值对

Javascript 获取子项的键/值对,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正试图用firebase数据库中的键/值对数据填充地图。以下是我的数据库结构: recipes/下的最高级别字段是uID,其中的字段是各个配方ID。当我仅检索当前登录的用户数据时,这很好,因为我只读取了一级深度,并且能够获得正确的键/值对 我正在尝试检索所有的食谱。如果我可以让一个映射只填充各个配方ID的键/值及其值,而不考虑此处的uid字段,那么这将是最简单的,但是任何正确存储在映射中的内容都可以工作。但我遇到的问题是,我似乎找不到通过UID动态查询的方法,因为唯一已知的id是当前登录的用

我正试图用firebase数据库中的键/值对数据填充地图。以下是我的数据库结构:

recipes/
下的最高级别字段是uID,其中的字段是各个配方ID。当我仅检索当前登录的用户数据时,这很好,因为我只读取了一级深度,并且能够获得正确的键/值对

我正在尝试检索所有的食谱。如果我可以让一个映射只填充各个配方ID的键/值及其值,而不考虑此处的uid字段,那么这将是最简单的,但是任何正确存储在映射中的内容都可以工作。但我遇到的问题是,我似乎找不到通过UID动态查询的方法,因为唯一已知的id是当前登录的用户。以下是到目前为止我得到的信息:

var ref = firebase.database().ref('recipes/');
ref.on('value', function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
        var childData = childSnapshot.val();
        var key = childSnapshot.key;
        allRecipesMap.set(key, childData);
    });
});
通过这段代码,我可以得到一个包含两个键/值对的映射,这些键/值对的值是用户的所有子项。我真正想要的是,还可以单独获得每个配方的键/值对,而不仅仅是以配方为值的用户的键

我真正想做的是单独获取每个菜谱的键/值对,而不仅仅是以菜谱为值的用户键

要做到这一点,您可以执行以下操作:

var ref = firebase.database().ref('recipes/');
ref.on('value', function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
        childSnapshot.forEach(function(subChildSnapshot) {
        var childData = subChildSnapshot.val();
        var key = subChildSnapshot.key;
      });
    });
});
添加另一个
forEach
将为您提供配方及其id的所有详细信息

我真正想做的是单独获取每个菜谱的键/值对,而不仅仅是以菜谱为值的用户键

要做到这一点,您可以执行以下操作:

var ref = firebase.database().ref('recipes/');
ref.on('value', function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
        childSnapshot.forEach(function(subChildSnapshot) {
        var childData = subChildSnapshot.val();
        var key = subChildSnapshot.key;
      });
    });
});

添加另一个
forEach
将为您提供配方的所有详细信息及其id。

我知道从技术上讲我不应该这么做,但非常感谢,我的工作非常有魅力!我知道从技术上讲我不应该这么做,但非常感谢,我工作得很有魅力!