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

Android模拟器可联网但Flutter应用无法连接Firebase求助

可能的缺失配置及解决方法

针对你遇到的AVD模拟器无法连接Firebase但物理设备正常的问题,以下是几个常见的配置缺失点及解决办法:

1. Firebase配置文件未正确同步到模拟器

物理设备上的应用可能已正确加载google-services.json,但模拟器中的应用可能因缓存或构建问题未同步最新配置。

  • 检查Android模块的build.gradle(非项目根目录的),确认末尾已添加apply plugin: 'com.google.gms.google-services'
  • 执行命令flutter clean清理缓存,然后重新构建并运行应用
  • 确保google-services.json文件正确放置在android/app目录下,且文件中的包名与模拟器中应用的ID完全一致

2. 模拟器缺失或Google Play服务版本过低

Firebase SDK依赖Google Play Services,仅能上网的Chrome不代表该服务正常工作。

  • 创建AVD时选择带有Google Play标识的系统镜像(部分Android镜像不含Google服务)
  • 打开模拟器内的Google Play应用,检查并更新到最新版本
  • 若模拟器无法更新,可尝试下载对应系统版本的Google Play Services安装包手动安装

3. 网络代理设置冲突

模拟器的系统代理或IDE代理可能干扰Firebase的网络请求:

  • 进入模拟器设置→网络和互联网→代理,设置为无,关闭所有代理
  • 检查IntelliJ的代理配置,确认未强制模拟器继承IDE代理(可在AVD启动配置中取消代理关联)

4. Firebase控制台的应用签名信息不匹配

模拟器使用的Debug签名SHA-1可能未在Firebase控制台注册,导致认证失败:

  • 获取Debug keystore的SHA-1:
    # Mac/Linux
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    # Windows
    keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
    
  • 登录Firebase控制台,进入对应应用的设置页面,将获取到的SHA-1添加到签名证书列表中

5. Android 9+明文流量限制

Android 9及以上默认禁止明文HTTP流量,若Firebase部分请求使用明文,会导致连接失败:

  • 在AndroidManifest.xml的<application>标签中添加:
    android:usesCleartextTraffic="true"
    
  • 或创建res/xml/network_security_config.xml,配置允许Firebase域名的明文流量,再在<application>标签中关联该配置:
    android:networkSecurityConfig="@xml/network_security_config"
    

如果错误栈中包含特定关键词,可快速定位问题:

  • GooglePlayServicesNotAvailableException → 对应第2点
  • SSLHandshakeException → 对应第3、5点
  • FirebaseAuthInvalidCredentialsException → 对应第4点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:25:33