我试图创建一个徽章,显示在底部NavigationBar的未读消息的总数,但我有一个流,显示在每个聊天未读消息的数量。我怎样才能得到这些数字的和呢?以下是我的流:
@override
Stream<int> getNumMessageNotseen(ChatEntity chat) {
return firebaseFirestore
.collection('chats')
.doc(chat.cid)
.collection('messages')
.orderBy('createAt')
.snapshots()
.map((messages) {
int num = 0;
int index = 0;
for (int i = 0; i < chat.participantsid!.length; i++) {
if (chat.participantsid![i] == chat.uid) {
index = i;
}
}
for (var doc in messages.docs) {
MessageModel message = MessageModel.fromSnapshot(doc);
if (message.senderid != chat.uid) {
if (message.isSeen![index] == false) {
num++;
}
}
}
return num;
});
}
1条答案
按热度按时间92vpleto1#
您可以使用
rxdart
库中的combine
。