【发布时间】:2020-06-21 19:26:24
【问题描述】:
我的应用程序结构有点乱,但我必须先添加这个补丁,然后我会重新构建整个逻辑。问题是我首先检查是否有 firebase 用户,如果有,我使用 StreamBuilder 从 Firestore 获取当前用户配置文件,然后我有 _firebaseMessaging.configure 方法,因为 onLaunch 和 onResume 我使用这个回调:
void _navigateToGestorResevas(Map<String, dynamic> message, User currentUser) {
Navigator.push(context,
MaterialPageRoute(builder: (context) =>
GestorScreen(user: currentUser)));
}
因为我需要将用户发送到此屏幕,以便他从 firebase 获取消息。 onResume 这工作正常,但 onLaunch 它会进入屏幕并获取数据,但大约有 20 秒的时间会出现某种故障。它在这个 _initState func 中有和没有快照数据的两种状态之间切换 20-30 次:
final snapshot = await _dbRef.child('mensajes').child(widget.user.id).once();
if (snapshot.value != null) {
setState(() {
hayMensajes = true;
});
final data = snapshot.value;
for (var entry in data.entries) {
Message message = Message.fromJson(entry.value);
setState(() {
message.add(message);
});
}
} else {
setState(() {
hayMensajes = false;
});
}
有人知道我做错了什么吗?
【问题讨论】:
标签: flutter dart firebase-cloud-messaging