我已经使用Flutter构建了一个友谊应用程序,用户每周都会收到一次新的友谊匹配。同时,比赛屏幕显示下一场比赛的倒计时。我正在使用flutter_counter_timer库来实现定时器。“new match”和“time to next match”都会在Firebase集合中更新,并通过Firebase快照侦听DB更改而自动反映在应用中。
问题:在测试时,这工作正常。然而,如果我在一定的延迟[比如1+天]后更新数据库,“下一场比赛的时间”或“新比赛”不会在应用程序上更新。我不知道为什么会发生这种情况-我正在为数据库中的每个新更新设置状态,而不是取消订阅Firebase快照。有什么想法吗
下面是我如何获取/侦听下一次匹配的时间的片段[获取/侦听新匹配的方法类似,两者都通过setState函数更新UI]
getTimeToNextMatch() async {
return FirebaseFirestore
.instance
.collection("endTime")
.doc(“docID”)
.snapshots()
.listen((result) {
setState(() {
timeToNextMatch = result.data()['timeToNextMatch'];
isLoading = false;
});
});
}
我已经尝试发送无效的倒计时时间或匹配-但他们都没有重现这个问题。还要注意的是,即使应用程序处于休眠状态,并且数据库在几天后更新,也会发生此问题。
1条答案
按热度按时间3htmauhk1#