Я создал построитель Listview, передав buildChatList
в качестве моего itembuilder, но я заметил, что ничего не возвращается из buildChatList
, когда я HOT RESTART или Rebuild приложения, НО фактически вернул ожидаемые данные, когда я HOT RELOAD.Я не понимаю, почему это происходит.Мне нужна помощь.
Ниже приведен мой код.
buildChatList(BuildContext context, int index) {
Map<String, dynamic> userDocumentt;
print('INDEX $index COUNT $currentUserActiveChatsLength');
String thisUserID = currentUserActiveChats[index];
if (user.uid.hashCode <= thisUserID.hashCode) {
groupChatId = '$_cuserID-$thisUserID';
} else {
groupChatId = '$thisUserID-$_cuserID';
}
Stream<QuerySnapshot> unreadMessages = Firestore.instance
.collection('messages')
.where("chatDetails.to", isEqualTo: user.uid)
.where("chatDetails.sender", isEqualTo: thisUserID)
.where("chatDetails.hasRead", isEqualTo: false)
.snapshots();
unreadMessages.listen((QuerySnapshot data) {
unReadMessageLength = data.documents.length;
});
Stream<QuerySnapshot> lastMess = Firestore.instance
.collection('messages')
.where('groupChatId', isEqualTo: groupChatId)
.orderBy('chatDetails.timestamp', descending: true)
.limit(1)
.snapshots();
lastMess.listen((QuerySnapshot data) {
List<DocumentSnapshot> userLastMess = data.documents;
chatDetailSnapshotList = userLastMess.map((DocumentSnapshot doc) {
return doc.data;
}).toList();
});
Stream<DocumentSnapshot> userP = usersRef.document(thisUserID).snapshots();
userP.listen((DocumentSnapshot snap) {
userDocumentt = Map.from(snap.data);
if (userDocumentt != null) {
print('HELLOo $userDocumentt');
myResult = new InkWell(
highlightColor: Colors.grey[300],
onTap: () {
Navigator.of(context, rootNavigator: true).push(
new MaterialPageRoute(
builder: (context) =>
new Chat(chatWith: userDocumentt['id'])));
},
onLongPress: () {
setState(() {
modifyMode = true;
});
},
child: new Container(
margin: EdgeInsets.only(left: 15.0, right: 15.0),
child: new Column(
children: <Widget>[
new Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Expanded(
child: new Container(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Container(
margin: EdgeInsets.only(left: 17.0, top: 5.0),
child: new Text(
userDocumentt['username'],
style: new TextStyle(
fontWeight: FontWeight.bold,
fontSize: 16.0,
),
),
),
new Container(
margin: EdgeInsets.only(left: 17.0, top: 7.0),
child: new Text(
chatDetailSnapshotList[0]["chatDetails"]
["content"],
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 15.0,
color: Colors.grey[800],
),
),
),
],
),
),
),
],
),
new Container(
margin: EdgeInsets.only(left: 72.0, top: 6.0, bottom: 6.0),
child: new Divider(
color: Colors.grey[300],
height: 10.0,
),
),
],
),
),
);
} else {
print('HELLLLOOO $userDocumentt');
myResult = CircularProgressIndicator();
}
});
return myResult;
}