Android 如何正确检索和存储数据以缓存颤振
在下面的代码中,我检索了firebase存储映像的下载链接,下载了带有该链接的映像并保存到临时存储(缓存)。图像文件未按图像中的要求加载。网络小部件立即启动。当我重新启动应用程序时,它只从缓存中获取文件。为什么应用程序需要重新启动以更新缓存内容?为什么我不能立即访问缓存中的下载文件Android 如何正确检索和存储数据以缓存颤振,android,firebase,flutter,firebase-storage,Android,Firebase,Flutter,Firebase Storage,在下面的代码中,我检索了firebase存储映像的下载链接,下载了带有该链接的映像并保存到临时存储(缓存)。图像文件未按图像中的要求加载。网络小部件立即启动。当我重新启动应用程序时,它只从缓存中获取文件。为什么应用程序需要重新启动以更新缓存内容?为什么我不能立即访问缓存中的下载文件 return FutureBuilder( future: FirebaseStorage.instance .ref()
return FutureBuilder(
future: FirebaseStorage.instance
.ref()
.child(snapshot.data["sellerID"])
.child(snapshot.data["image"])
.getDownloadURL(),
builder: (context, snap) {
if (snap.hasData) {
writeToFile(snapshot.data);
return Image.network(snap.data);
}
return Image.file(
File(
"${MyApp.baseDirGlobal}/${snapshot.data["image"]}"),
fit: BoxFit.cover);
},
);
writeTofile函数定义如下
void writeToFile(DocumentSnapshot snapshot) async {
final File file = File('${MyApp.baseDirGlobal}/${snapshot.data["image"]}');
if (await file.exists()) {
print("THE FILE EXISTS");
} else {
FirebaseStorage.instance
.ref()
.child(snapshot.data["sellerID"])
.child(snapshot.data["image"])
.writeToFile(file);
}
}
writeToFile是异步的,所以在返回Image.network之前需要等待