【发布时间】:2020-10-15 11:34:22
【问题描述】:
我目前正在用颤振设计一个聊天应用程序,为此我正在使用 Firestore。我想知道这些流是如何工作的,因为我想知道读取次数,以便我可以预测限制。假设当前有 315 条消息,并且所有消息都在当前聊天屏幕中。如果一个人输入一条新消息,它将是第 316 条消息,因此 Flutter Stream 会读取所有 316 条消息,或者只是获取新添加的消息并将其附加到 315 成员列表中。
我看到很多视频阅读博客,他们只是错过了这一点。我想清楚地理解这一点。
return StreamBuilder<QuerySnapshot>(
stream: _firestoreDatabase.collection(id).orderBy('time').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(
child: CircularProgressIndicator(
backgroundColor: Colors.lightBlueAccent,
),
),
],
);
} else {
final messages = snapshot.data.documents.reversed;
List<MessageBubble> messageBubbles = [];
for (var message in messages) {
final messageText = message.data['amount'];
final messageSender = message.data['team'];
final timeDisp = message.data['timedisp'];
final currentUser = teamName;
bool isManager;
if (messageSender.toString() == 'Manager') {
isManager = true;
} else {
isManager = false;
}
final messageBubble = MessageBubble(
sender: messageSender,
text: messageText.toString(),
isMe: currentUser == messageSender,
timeDisp: timeDisp,
isManager: isManager,
);
messageBubbles.add(messageBubble);
}
return Expanded(
child: ListView(
reverse: true,
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
children: messageBubbles,
),
);
}
},
);
【问题讨论】:
-
请编辑问题以显示您正在使用的查询代码,以便我们更好地了解您在做什么。
-
是的,我已经添加了代码
标签: flutter google-cloud-firestore