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

如何无需设置android:usesCleartextTraffic="true"部署Flutter Android应用?

不用开android:usesCleartextTraffic="true",解决Firebase模拟器部署问题

下面是几种合规且安全的解决办法:

1. 确认所有Firebase请求使用HTTPS

Firebase官方的所有服务(数据库、认证、存储等)都支持HTTPS,先检查代码中的请求端点:

  • Realtime Database地址必须是https://<你的项目ID>.firebaseio.com/,不要写成http://开头
  • Firebase Storage的地址默认就是HTTPS,避免手动修改为HTTP
  • 自定义的API请求也全部切换为HTTPS,这是最稳妥的方案,完全符合Android安全规范

2. 为特定域名开放明文流量(比全局设置更安全)

如果确实有测试环境的Firebase相关服务只能使用明文,不要全局开启usesCleartextTraffic,通过网络安全配置精准控制:

  1. 在res/xml目录下创建network_security_config.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- 替换为你需要放行明文的Firebase相关域名,比如测试环境的数据库地址 -->
        <domain includeSubdomains="true">your-test-firebase-domain.com</domain>
    </domain-config>
</network-security-config>
  1. 在AndroidManifest.xml的application标签中引用该配置:
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config">
    ...
</application>

这种方式仅对指定域名开放明文流量,其他请求仍强制使用HTTPS,安全性更高。

3. 检查模拟器的网络环境

有时候模拟器的代理、DNS配置异常,会导致HTTPS请求失败,误以为需要开启明文:

  • 关闭模拟器的代理设置(如果之前开启过)
  • 重启模拟器,或切换模拟器的网络类型(比如从Wi-Fi切换到蜂窝网络)
  • 在模拟器浏览器中打开https://firebase.google.com,确认能正常访问HTTPS站点

4. 更新Firebase SDK到最新版本

旧版本的Firebase SDK可能存在端点配置兼容性问题,更新到最新版可避免这类问题:

  • 在项目的build.gradle(项目级)和app/build.gradle(模块级)中,将Firebase相关依赖更新为官方最新版本
  • 同步Gradle后重新构建项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:01:20