颤振循环遍历由单个节点和具有子节点组成的 Firebase 节点



我有这段代码:

routineExersiceIDsetter() async{
String routineId;
final response = await reference.child(_userId).once();
response.value.forEach((k,v){
if(v["name"] == "First Routine"){
currentRoutineId = k;
routineId = k;
}
});
final response2 = await reference.child(_userId).child(currentRoutineId).once();
response2.value.forEach((k, v){
if(v["name"] == "Day 1"){
currentSchemeId = k;
}
});
}

和火碱数据库的这一块

{
"-LBNflaqFEb4DtZiYxnh" : {
"-LBWa99g4yCstUBkDGa7" : {
"name" : "Day 1"
},
"name" : "First Routine"
}
}

第一行 forEach 有效,但第二行无效。有没有办法做到这一点,或者我需要更改我的 Firebase 架构?

我意识到应该将第二个if语句包装在另一个if语句中:

if(k!="name"){
if(v["name"] == "Day 1"){
currentSchemeId =k;
}
}