You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter+Firebase Android测试设备Firebase Storage图片加载失败求助

问题:Flutter应用突然无法加载Firebase Storage图片,报错SocketException

我用Flutter开发Android衣物管理应用,衣物文本数据(材质、颜色、季节、imageUrl等)存储在Firebase Database,图片存储在Firebase Storage。此前加载文本和图片展示电子衣橱的功能完全正常,但今日起图片加载突然失败,Firebase Database仍可正常访问。

加载图片的代码如下:

Widget _buildClothImage(cloth) {
    return cloth.imagePath != null
    ? Image.network(
        cloth.imagePath!,
        fit: BoxFit.cover,
    )
    : Container(
        color: Colors.grey[200],
        child: const Icon(Icons.image, size: 40),
    );
}

出现的错误信息:

I/flutter (24492): 🔴 Image error: SocketException: Connection failed (OS Error: Network is unreachable, errno = 101), address = firebasestorage.googleapis.com, port = 443

Flutter版本信息:
Flutter 3.27.4 • channel stable
Framework • revision d8a9f9a52e (7天前) • 2025-01-31 16:07:18 -0500
Engine • revision 82bd5b7209
Tools • Dart 3.6.2 • DevTools 2.40.3

已尝试的解决方法:

  • 将cloth.imagePath中的URL复制到浏览器,可正常显示图片
  • 使用任意网络图片URL传入Image.network,可正常显示
  • 确认Firebase Storage安全规则为开放状态(允许2025/4/6前的所有请求)
  • 检查测试设备时区,日期时间显示正确

排查方向

1. 检查Android应用网络权限配置

确认AndroidManifest.xml中是否添加了必要的网络权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

若为Android 10及以上版本,可检查application标签是否配置了android:usesCleartextTraffic="true",或确认network_security_config未限制HTTPS请求。

2. 排查设备网络访问限制

  • 切换网络环境:从Wi-Fi切换到移动数据,或更换其他Wi-Fi,排除当前网络对firebasestorage.googleapis.com的屏蔽
  • 关闭设备的代理、VPN或防火墙,避免这类工具拦截Storage域名请求
  • 用设备浏览器直接访问https://firebasestorage.googleapis.com,验证是否能正常连接

3. 检查Firebase SDK版本兼容性

查看pubspec.yaml中firebase_storage插件的版本,确认是否与Flutter版本、其他Firebase插件版本存在兼容性问题。可尝试升级至最新稳定版,或回退到之前能正常运行的版本。

4. 验证图片URL的有效性

  • 确认cloth.imagePath是Firebase Storage生成的长期有效URL,若为临时签名URL,需检查是否过期(即使浏览器能打开,也要确认是否为同一时间生成的URL)
  • 重新生成图片的下载URL,替换原有URL测试是否能加载

5. 清除应用缓存与DNS缓存

  • 清除应用的缓存和存储数据,重启应用重试
  • 切换设备飞行模式再关闭,或直接重启设备,强制刷新DNS缓存,避免域名解析异常

6. 检查Firebase项目状态

  • 登录Firebase控制台,确认Storage服务是否正常运行,有无服务中断、存储容量/带宽超限的情况
  • 检查项目计费状态,确认是否因欠费导致Storage服务受限

7. 验证Android网络安全配置

若应用配置了network_security_config.xml,检查是否允许访问firebasestorage.googleapis.com,确保配置中包含:

<domain includeSubdomains="true">firebasestorage.googleapis.com</domain>

8. 测试其他设备/模拟器

在其他Android设备或模拟器上运行应用,排查是否为当前测试设备的系统层面问题

内容的提问来源于stack exchange,提问作者user29546576

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:32:04