我使用的是Flatter,我有一个简单的方法,读取数据库中的每个用户,并将其添加到列表中,一旦读取完用户,该方法必须返回包含所有读取数据的列表,我的问题是,我的函数不会等待侦听器完成读取,然后甚至在侦听器完成读取之前返回我的列表(myList).
以下是代码:
Future<List<String>> getUsers () async {
List<String> myList = [];
final mRef = FirebaseDatabase.instance.ref().child("Users");
mRef.onValue.listen((event) async {
for (final child in event.snapshot.children) {
myList.add( child.value.toString() ); //ADDS THE VALUE TO THE LIST
}
});
//RETURN THE LIST
return myList;
}
我试着在听众面前等待,但什么也没用.