【问题标题】:how to show default image if image from firebase is null in flutter?如果来自firebase的图像在颤动中为空,如何显示默认图像?
【发布时间】:2021-04-15 03:09:18
【问题描述】:

我正在使用下面的代码来显示来自 firebase 的头像图像。如果来自 firebase 的图像数据为 null,则应用程序将出错。我的问题是如何将我的资产文件夹中的默认图像(如 person.jpg)放入此代码?

Stack(
              children: [
                CircleAvatar(
                  backgroundColor: kDarkGreenColor.withOpacity(0.5),
                  radius: 60.0,
                  backgroundImage:
                      NetworkImage(snapshot.data.data()['userimage']),
                ),
                Positioned(
                    top: 90.0,
                    left: 90.0,
                    child: Icon(FontAwesomeIcons.plusCircle,
                        color: kWhiteColor))
              ],
            ),

【问题讨论】:

    标签: firebase image flutter dart google-cloud-firestore


    【解决方案1】:

    您有多种解决方案:

    1. 用另一个 url 添加一个简单的条件:
    Stack(
      children: [
        CircleAvatar(
          backgroundColor: kDarkGreenColor.withOpacity(0.5),
          radius: 60.0,
          backgroundImage:
              NetworkImage(snapshot.data.data()['userimage'] ?? 'image_url_when_its_null'),
        ),
        Positioned(
            top: 90.0,
            left: 90.0,
            child: Icon(FontAwesomeIcons.plusCircle,
                color: kWhiteColor))
      ],
    ),
    
    1. 添加条件以显示自定义资产图片:
    Stack(
      children: [
        CircleAvatar(
          backgroundColor: kDarkGreenColor.withOpacity(0.5),
          radius: 60.0,
          backgroundImage: 
           snapshot.data.data()['userimage'] != null 
             ? NetworkImage(snapshot.data.data()['userimage'])
             : AssetImage('path/to/asset'),
        ),
        Positioned(
            top: 90.0,
            left: 90.0,
            child: Icon(FontAwesomeIcons.plusCircle,
                color: kWhiteColor))
      ],
    ),
    

    【讨论】:

      【解决方案2】:

      使用?? 和另一个网址,您可以轻松做到这一点。

      类似:

      NetworkImage(snapshot.data.data()['userimage'] ?? "https://stackoverflow.design/assets/img/logos/so/logo-stackoverflow.png"),
      

      【讨论】:

        猜你喜欢
        • 2021-06-11
        • 2013-05-27
        • 1970-01-01
        • 2012-01-03
        • 2012-07-23
        • 2018-03-11
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        相关资源
        最近更新 更多