颤振(Dart)第二次异步firebase实时数据库调用始终返回;空";
我是新手,来自iOS本地开发。我想进行两次Firebase实时数据库调用,第二次调用等待第一次调用的结果 目标是获得一个“activeSetup”,它保存在数据库中单独的树中。它包含RoleUID、TeamUID和组织UID。要获取这个活动设置的uid,我必须先进入另一个包含用户数据的树(每个用户可以有多个设置,但只有一个是活动的) 首先:进入UserRef=>从为用户保存的多个设置中获取ActiveSetupUID 第二步:使用获得的UID进入SetupRef并获取存储的值。放入“设置”模型并返回 代码如下:颤振(Dart)第二次异步firebase实时数据库调用始终返回;空";,firebase,flutter,asynchronous,dart,firebase-realtime-database,Firebase,Flutter,Asynchronous,Dart,Firebase Realtime Database,我是新手,来自iOS本地开发。我想进行两次Firebase实时数据库调用,第二次调用等待第一次调用的结果 目标是获得一个“activeSetup”,它保存在数据库中单独的树中。它包含RoleUID、TeamUID和组织UID。要获取这个活动设置的uid,我必须先进入另一个包含用户数据的树(每个用户可以有多个设置,但只有一个是活动的) 首先:进入UserRef=>从为用户保存的多个设置中获取ActiveSetupUID 第二步:使用获得的UID进入SetupRef并获取存储的值。放入“设置”模型并
Future<Setup> getActiveSetup(String userUID) async {
Setup resultSetup;
DataSnapshot step1 = await _db
.reference()
.child("users")
.child(userUID)
.child("Setups")
.once();
Map<dynamic, dynamic> result = step1.value;
String activeSetupKey;
result.forEach((key, value) {
if (value == "isActive") {
activeSetupKey = key;
}
});
DataSnapshot step2 = await _db
.reference()
.child("setups")
.child(userUID)
.child(activeSetupKey)
.once();
resultSetup = Setup(
uid: activeSetupKey,
organisationUID: step2.value["OrganisationUID"],
teamUID: step2.value["TeamUID"],
roleUID: step2.value["RoleUID"]);
print(resultSetup);
}
Future getActiveSetup(字符串userUID)异步{
设置结果设置;
DataSnapshot step1=等待_db
.reference()
.child(“用户”)
.child(userUID)
.child(“设置”)
.一次();
映射结果=step1.0值;
字符串设置键;
result.forEach((键,值){
如果(值==“isActive”){
activeSetupKey=key;
}
});
DataSnapshot step2=等待_db
.reference()
.child(“设置”)
.child(userUID)
.child(activeSetupKey)
.一次();
结果设置=设置(
uid:activeSetupKey,
OrganizationUID:step2.值[“OrganizationUID”],
teamUID:step2.value[“teamUID”],
roleUID:step2.值[“roleUID”]);
打印(结果设置);
}
这里的ResultSetup总是返回“Null”,我不知道我缺少了什么