firebase - 在我停止并以调试模式重新运行应用程序后,Flutter 会清除移动应用程序目录(不是临时目录)
问题描述
我正在颤振中创建一个聊天应用程序。当用户发送文件由于网络错误而无法上传时,我会自动将文件保存到其应用目录。但是自从我的flutter sdk更新到Flutter 2.2.2 • channel stable • https://github.com/flutter/flutter.git Framework • revision d79295af24 (7 weeks ago) • 2021-06-11 08:56:01 -0700 Engine • revision 91c9fc8fe0 Tools • Dart 2.13.3
,当我停止并重新运行应用程序时,文件消失了(此时我试图重新创建用户关闭应用程序并决定稍后重新发送文件的情况)。
我目前正在调试模式下运行该应用程序,只是想确认此问题是否会在生产中发生。
下面是我在firebase中存储(缓存)的路径示例,以便以后使用getApplicationDirectory()
我得到的上传:
/var/mobile/Containers/Data/Application/A36544F7-2DCD-4F18-AECA-D4D52D05CD42/Documents/filename.extension
在flutter sdk更新之前,以下用例完美运行:
- 用户发送文件,例如照片
- 网络错误
- 保存到 Firebase 持久存储的目录和缓存路径
- 完全关闭应用程序,然后打开应用程序
- 打开聊天室,图像仍然存在
- 然后选择重新发送
- 图像在网络连接上成功发送。
- 自动从应用目录中删除文件。
更新后:
- 用户发送文件,例如照片
- 网络错误
- 保存到 Firebase 持久存储的目录和缓存路径
- 完全关闭应用程序,然后打开应用程序
- 打开的聊天室和文件不存在,但路径在 firebase 持久存储中仍然可用。
解决方案
推荐阅读
- docker - Dockerfile:用 sed 替换文件内容将值替换为空
- flutter - 即使使用扩展也无法呈现列表视图构建器
- ios - 内部 UI 表视图不滚动
- node.js - Mongoose / MongoDB 在模式中具有唯一键的重复条目
- android-studio - CognitoUserSession 无效,因为 idToken 为空
- javascript - 为什么使用移动视图(媒体查询)时选项卡不起作用?
- git - Git 自动将代码从一个分支合并到同一仓库中的另一个分支
- r - 如果特征存在则变异,否则 NA_real_
- javascript - 如何防止存储在路由器堆栈中的 PrivateRoutes 在用户注销后重新渲染?
- python-3.x - 如何在包含特殊字符的文本中提取n位数字