我有个问题。每当我从图库中搜索图片以查找个人资料时,便会查看其作品。即使当我按下注销按钮并再次登录时,仍然有我的个人资料图片。但是,当我关闭应用程序并重新启动应用程序时,个人资料图片消失了。有谁知道如何正确保存URL?
Future uploadPic(BuildContext context) async {
String fileName = basename(_image.path);
StorageReference firebaseStorageRef = FirebaseStorage.instance.ref().child(
fileName);
StorageUploadTask uploadTask = firebaseStorageRef.putFile(_image);
StorageTaskSnapshot taskSnapshot = await uploadTask.onComplete;
var downUrl = await (await uploadTask.onComplete).ref.getDownloadURL();
Constants.URL_Profil_Picture = downUrl.toString();
setState(() {
print('Profile Picture uploaded');
Scaffold.of(context).showSnackBar(
SnackBar(content: Text('Profile Picture Uploaded')));
});
}
image: (_image != null) ? FileImage(
_image)
: NetworkImage(Constants.URL_Profil_Picture),
这似乎是问题的原因:
Constants.URL_Profil_Picture = downUrl.toString();
我猜想,当您重新启动应用程序时,Constants.URL_Profil_Picture
会再次设置为其硬编码值。
您需要将URL存储在可以使应用程序重新启动的地方。常见的方法是:
将URL存储在共享首选项或其他本地存储形式中。这使得URL仅在从其上传的设备上可用。
将URL存储在云数据库中,例如Cloud Firestore或实时数据库。这是最常见的选项,因为它为您提供了最大的灵活性。
假设您正在谈论用户个人资料:如果您使用Firebase身份验证登录用户,并且此图像是他们的个人资料图片,则也可以将其存储在用户个人资料中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句