[英]Flutter Firebase app runs fine in simulator but crashes when tested in testflight
[英]Flutter cast runs in development but crashes in production
在调试期间,在我的本地 flutter 环境中允许将 null 转换为字符串。 但是,当部署到生产环境时,相同的类型转换将被视为崩溃异常。
代码可以翻译成如下:
final dynamic test = null as String;
print(test);
实际代码由 json_serializable package ( https://pub.dev/packages/json_serializable ) 生成,因此交替代码本身是不可能的。
我的本地环境通过flutter医生描述:本地flutter环境
生产崩溃可以在Dartpad中模拟https://dartpad.dev/?channel=old
环境有什么不同? 我希望开发环境抛出错误,所以它在被推送到生产 state 之前被发现并修复。
我试过将生产环境与开发环境进行比较,但没有发现可以解释该行为的主要区别。
as
不是使用.toString()
final dynamic test = null.toString();
同时也使用变量,
final String data = "${model.filed}";
正如 jamesdlin 在评论中指出的那样,客户端不应该信任服务器提供可靠的数据。 实施客户端空检查和回退使客户端更具弹性。
因此,所有使用 json_serializable 声明的字段都应该标记为可为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.