我正在尝试使用来自我的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);
});
});
使用此代码,我可以获得具有两个键/值对的映射,这些键的值是用户的所有子代。我真正想要的是也分别获取每个配方的键/值对,而不仅仅是以配方为值的用户键。
答案 0 :(得分:2)
我真正想要的是也分别获得每个配方的键/值对,而不仅仅是以配方为值的用户键
要执行此操作,则可以执行以下操作:
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。