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

Flutter项目迁移后无法连接Cloud Firestore后端求助

Flutter迁移硬盘后Firestore无法连接(模拟器环境)

问题背景

在VSCode中开发Flutter项目,使用Firestore作为数据库,此前运行完全正常。更换新硬盘迁移所有文件后,项目编译无报错,但Firestore无法连接后端。已尝试更新所有依赖、执行Flutter Doctor检测(无异常),以及论坛上多种常规解决方案,均未解决问题。期间未修改业务代码,仅为修复问题调整过部分配置文件。

关键信息

  • 测试环境:Android Studio模拟器,3款不同配置模拟器均出现相同问题:
    • 预装Google Play服务的模拟器
    • 未预装Google Play服务的模拟器
    • 手动创建的无Google Play服务模拟器
  • 项目旧版本构建包在多台真实设备上仍能正常访问Firestore数据库

报错日志

W/DynamiteModule( 6511): 未找到com.google.android.gms.providerinstaller.dynamite的本地模块描述符类。
I/DynamiteModule( 6511): 正在考虑本地模块com.google.android.gms.providerinstaller.dynamite:0和远程模块com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller( 6511): 加载providerinstaller模块失败:未找到可接受的com.google.android.gms.providerinstaller.dynamite模块。本地版本为0,远程版本为0。
W/ProviderInstaller( 6511): 无法上报请求统计:com.google.android.gms.common.security.ProviderInstallerImpl.reportRequestStats [class android.content.Context, long, long]
W/Firestore( 6511): (24.2.2) [OnlineStateTracker]: 无法连接到Cloud Firestore后端。后端10秒内未响应。
W/Firestore( 6511):
W/Firestore( 6511): 这通常表示当前设备网络连接不正常。客户端将进入离线模式,直到成功连接到后端。
W/DynamiteModule( 6511): 未找到com.google.android.gms.providerinstaller.dynamite的本地模块描述符类。
W/Firestore( 6511): (24.2.2) [WatchStream]: (4aed552) 流已关闭,状态:Status{code=UNAVAILABLE, description=调用了Channel shutdownNow, cause=null}。
I/DynamiteModule( 6511): 正在考虑本地模块com.google.android.gms.providerinstaller.dynamite:0和远程模块com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller( 6511): 加载providerinstaller模块失败:未找到可接受的com.google.android.gms.providerinstaller.dynamite模块。本地版本为0,远程版本为0。
W/ProviderInstaller( 6511): 无法上报请求统计:com.google.android.gms.common.security.ProviderInstallerImpl.reportRequestStats [class android.content.Context, long, long]

已尝试的解决方案

  • 在所有AndroidManifest.xml文件中添加Firestore相关配置
  • 启用Multidex
  • 更换Wi-Fi网络
  • 间隔24小时后重试
  • 确认模拟器网络正常(可正常访问其他网络资源)
  • 将项目最低SDK版本设置为21

环境配置信息

Flutter Doctor检测结果

[√] Flutter(稳定通道,3.3.0版本,运行于Microsoft Windows [版本10.0.19044.1889],区域设置en-US)
    • Flutter版本3.3.0,位于稳定通道,路径:D:\Coding\Flutter\flutter
    • 上游仓库:https://github.com/flutter/flutter.git
    • Framework修订版本:ffccd96b62(2天前),2022-08-29 17:28:57 -0700
    • Engine修订版本:5e9e0e0aa8
    • Dart版本:2.18.0
    • DevTools版本:2.15.0

[√] Android工具链 - 开发Android设备(Android SDK版本33.0.0)
    • Android SDK路径:C:\Users\mjdk9\AppData\Local\Android\sdk
    • 平台:android-33,构建工具:33.0.0
    • Java二进制文件路径:D:\Applications\Android Studio\jre\bin\java
    • Java版本:OpenJDK运行环境(build 11.0.12+7-b1504.28-7817840)
    • 已接受所有Android许可证。

[√] Chrome - 开发Web应用
    • Chrome路径:C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - 开发Windows应用(Visual Studio Community 2022 17.3.3)
    • Visual Studio路径:C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022版本:17.3.32825.248
    • Windows 10 SDK版本:10.0.19041.0

[√] Android Studio(版本2021.2)
    • Android Studio路径:D:\Applications\Android Studio
    • Flutter插件可从以下位置安装:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart插件可从以下位置安装:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java版本:OpenJDK运行环境(build 11.0.12+7-b1504.28-7817840)

[√] 已连接设备(4台可用)
    • sdk gphone x86(移动设备) • emulator-5554 • android-x86    • Android 11(API 30)(模拟器)
    • Windows(桌面设备)       • windows       • windows-x64    • Microsoft Windows [版本10.0.19044.1889]
    • Chrome(Web设备)            • chrome        • web-javascript • Google Chrome 104.0.5112.102
    • Edge(Web设备)              • edge          • web-javascript • Microsoft Edge 104.0.1293.70

[√] HTTP主机可用性
    • 所有必需的HTTP主机均可访问

• 未发现任何问题!

pubspec.yaml依赖配置

dependencies:
  flutter:
    sdk: flutter


  # 以下依赖会将Cupertino Icons字体添加到你的应用中。
  # 使用CupertinoIcons类可调用iOS风格图标。
  cupertino_icons: ^1.0.2
  firebase_core: ^1.4.0
  firebase_auth: ^3.0.1
  cloud_firestore: ^3.4.6
  firebase_analytics: ^9.3.3
  material_floating_search_bar: ^0.3.4
  provider: ^6.0.3
  flutter_launcher_icons: ^0.10.0
  url_launcher: ^6.0.10
  url_launcher_web: ^2.0.4
  flutter_rating_bar: ^4.0.0
  smooth_star_rating: ^1.1.1
  dropdown_button2: ^1.0.7
  confetti: ^0.7.0
  flutter_native_splash: ^2.1.6
  http: ^0.13.4
  get: ^4.6.1
  audioplayers: ^1.0.1
  loader_overlay: ^2.0.6
  webview_flutter: ^3.0.2
  syncfusion_flutter_datagrid: ^20.1.61
  cloud_functions: ^3.2.17

app/build.gradle配置

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services'

defaultConfig {
        multiDexEnabled true
        applicationId "com.mjdk99.matter_medical_supplies"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation platform('com.google.firebase:firebase-bom:30.3.2')
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.android.gms:play-services-location:18.0.0'
}

根目录build.gradle配置

buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
        google()
        mavenCentral()
        jcenter()
    }

    dependencies {
        classpath 'com.google.gms:google-services:4.3.13'
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
}

针对性解决方案

1. 检查并替换Firebase配置文件

迁移硬盘可能导致google-services.json文件丢失或损坏:

  • 登录Firebase控制台,重新下载对应项目的google-services.json文件
  • 替换项目android/app目录下的同名文件
  • 执行flutter clean后重新构建项目

2. 修复ProviderInstaller模块加载失败问题

报错核心为Google Play Services的ProviderInstaller模块缺失,针对模拟器环境:

  • 打开Android SDK Manager,确保Google Play Services和Google Repository为最新版本
  • 对于无Google Play服务的模拟器,在app/build.gradle的dependencies中添加以下依赖:
    implementation 'com.google.android.gms:play-services-base:18.1.0'
    implementation 'com.google.android.gms:play-services-basement:18.1.0'
    

3. 升级Firebase依赖版本

当前Firebase依赖版本与Flutter 3.3.0存在兼容性差异:

  • 更新pubspec.yaml中的Firebase相关依赖至稳定兼容版本,示例:
    firebase_core: ^1.24.0
    firebase_auth: ^4.1.0
    cloud_firestore: ^4.4.0
    firebase_analytics: ^10.1.0
    cloud_functions: ^4.0.10
    
  • 执行flutter pub upgrade更新依赖,同步Gradle配置后重新构建

4. 重置模拟器缓存

模拟器缓存可能在迁移后出现异常:

  • 打开Android Studio的Device Manager
  • 选中目标模拟器,点击Wipe Data重置设备
  • 重启模拟器后重新运行项目

5. 升级Gradle版本兼容性

当前Gradle版本与Android SDK 33不兼容:

  • 将根目录build.gradle中的com.android.tools.build:gradle版本升级至7.0.0+,示例:
    classpath 'com.android.tools.build:gradle:7.2.0'
    
  • 修改android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl为对应版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:16:05