У меня есть метод asyn c, который возвращает длину документов запроса Firebase с условием, и o реализован с использованием метода await в методе. Код ниже.
////////////////////////
getUreadMsgCount(groupChatId, id).then((result) {
unReadCount = result;
print("COUNT WITHIN getUreadMsgCount Method : $unReadCount");
});
print("UNREAD OUTSIDE METHOD : $unReadCount");
////// /////////////////////////////////
Future getUreadMsgCount(String groupId, String idFrom) async {
var respectsQuery = Firestore.instance
.collection('messages')
.document(groupId).collection(groupId)
.where('idFrom', isEqualTo: idFrom).where('isSeen', isEqualTo: 0);
var querySnapshot = await respectsQuery.getDocuments();
int totalUnread = querySnapshot.documents.length;
return totalUnread;
}
//////// ////// OUT PUT /////////////////////////
I/flutter (28972): UNREAD OUTSIDE METHOD : 0
I/flutter (28972): UNREAD OUTSIDE METHOD : 0
I/flutter (28972): UNREAD OUTSIDE METHOD : 0
I/flutter (28972): COUNT WITHIN getUreadMsgCount Method : 2
I/flutter (28972): COUNT WITHIN getUreadMsgCount Method : 0
I/flutter (28972): COUNT WITHIN getUreadMsgCount Method : 0
Здесь, если вы заметили, это всегда выполняется строка ВНЕШНИЙ МЕТОД сначала, следовательно, всегда получает значение 0
Мне нужно сначала получить значение из инициализированного метода getUreadMsgCount, а затем перейти к следующей строке. Любая помощь?