firebase - 当网络连接不足或没有网络连接时颤动应用程序崩溃
问题描述
我有这个 IconButton,当我按下它时,它会更新我的云 Firestore DB 上的一个字段。如果有一个健康的互联网连接,我不会遇到任何问题,但是没有网络或低信号我得到一个超时错误,这个导致应用程序崩溃。我已经将该函数包装在 try{} catch{} 块中,但这仍然无济于事。
onPressed: (){
try{
Firestore.instance.runTransaction((Transaction thistransaction)async{
DocumentSnapshot docSnapshot = await thistransaction
.get(snapshotDocuments[index].reference);
await thistransaction.update(docSnapshot.reference,
{'voteUpBool':!docSnapshot['voteUpBool']});
});
}
catch(err){
print(err.toString());
}
},
解决方案
您必须检查互联网或 wifi 是否可用,只需添加连接:^0.3.1最新版本的依赖项并遵循以下代码。
import 'dart:io';
...
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
print('connected');
}
} on SocketException catch (_) {
print('not connected');
}
推荐阅读
- python - 如何在python中拟合任何非线性函数?
- python - 在交互式会话中查看熊猫数据框会引发 SettingWithCopyWarning
- joomla - 如何在 Joomla TinyMCE 中添加类以包含 p 标签
- angular - 从 npm 添加 argon2 或 bcrypt 后,Angular 构建失败
- bash - 使用 atom 为 aws 编写脚本
- c - 位运算符:如何检查源端口是否大于 32767 (0x7FFF)
- javascript - 如何将 Highcharts 标签宽度设置为 50%
- python - 删除小部件后布局不正确
- angular - 使用 Angular 对 confirmPassword 进行自定义验证
- matlab - 为什么我的 MATLAB 代码会打印 for 循环中的每个值?