Следующий код работает нормально, потому что он возвращает только простой список, но в некоторых случаях, когда мне нужно делать вложенные вызовы Firebase, я не могу заставить вещи происходить в правильном порядке, и основной оператор return оказывается неполным. Что я могу сделать, чтобы улучшить мои будущие асинхронные вызовы?
Future<List<MyNotification>> getNotifications() async {
var uid = await FirebaseAuth.instance.currentUser();
List<MyNotification> tempNots = await Firestore.instance
.collection("notifications")
.where("targetUsers", arrayContains: uid.uid)
.getDocuments()
.then((x) {
List<MyNotification> tempTempNots = [];
if (x.documents.isNotEmpty) {
for (var not in x.documents) {
tempTempNots.add(MyNotification.fromMap(not));
}
}
return tempTempNots = [];
});
return tempNots;
}