【问题标题】:Save the image even the application restart即使应用程序重新启动也保存图像
【发布时间】:2021-01-09 19:22:21
【问题描述】:

我有问题。每次当我从我的图库中搜索我的个人资料图片时,它的作品。即使当我按下注销按钮并再次登录时,我的头像仍然存在。但是当我关闭应用程序并重新启动应用程序时,头像就消失了。有谁知道如何正确保存网址?

 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),

【问题讨论】:

    标签: firebase flutter firebase-storage


    【解决方案1】:

    这似乎是问题的原因:

    Constants.URL_Profil_Picture = downUrl.toString();
    

    我猜当你重新启动应用程序时,Constants.URL_Profil_Picture 会再次设置为其硬编码值。

    您需要将 URL 存储在应用程序重新启动后的某个位置。常见的方法是:

    1. 将 URL 存储在 shared preferences 或其他某种形式的本地存储中。这使得该 URL 仅在从中上传它的设备上可用。

    2. 将 URL 存储在云数据库中,例如 Cloud Firestore 或实时数据库。这是最常见的选项,因为它为您提供了最大的灵活性。

    3. 鉴于您在谈论用户个人资料:如果您使用 Firebase 身份验证来登录用户,并且此图片是他们的个人资料图片,您可以还有store it in the user profile

    【讨论】:

    • 我想做第三个,那会很好。你能举个例子吗?
    猜你喜欢
    • 2019-06-27
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    相关资源
    最近更新 更多