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

Flutter+Firebase注册时出现_throw及ProviderInstaller错误求助

解决Flutter Firebase注册环节的两个错误

错误1:external static Never _throw(Object error, StackTrace stackTrace);

这个错误源于createUser方法的返回值逻辑不一致:try块执行写入操作后未返回值,但catch块却返回了DocumentReference,导致方法返回类型混乱,触发Firebase内部的抛出逻辑。

修复方案

修改user_repository.dart中的createUser方法,明确返回类型并统一逻辑:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rentease/SignUp/Model/user_model.dart';

class UserRepository extends GetxController {
  static UserRepository get instance => Get.find();
  final _db = FirebaseFirestore.instance;

  // 明确返回类型为Future<void>,避免返回值混乱
  Future<void> createUser(UserModel user) async {
    try {
      await _db.collection("Users").add(user.toJson());
      Get.snackbar("Success", "Your Account has been created",
          snackPosition: SnackPosition.BOTTOM,
          backgroundColor: Colors.green,
          colorText: Colors.white);
    } catch (error) {
      // 显示具体错误信息,方便调试定位问题
      Get.snackbar("Error", "Something went wrong: ${error.toString()}",
          snackPosition: SnackPosition.BOTTOM,
          backgroundColor: Colors.red,
          colorText: Colors.white);
      // 若需要上层代码处理错误,可添加 rethrow;
    }
  }
}

错误2:Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.

这是Android端Google Play Services动态模块缺失的问题,可通过以下步骤修复:

修复方案

  1. 添加ProviderInstaller依赖
    在android/app/build.gradle的dependencies块中补充依赖:
implementation 'com.google.android.gms:play-services-providerinstaller:17.0.0'
  1. 统一Firebase与Play Services版本
    使用Firebase BOM管理版本,避免版本冲突:
  • 在android/build.gradle中配置统一版本参数:
ext {
    compileSdkVersion = 34
    minSdkVersion = 21
    targetSdkVersion = 34
    firebaseBomVersion = "32.7.0"
}
  • 在android/app/build.gradle中引入Firebase BOM:
dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.7.0')
    implementation 'com.google.firebase:firebase-firestore'
    implementation 'com.google.android.gms:play-services-providerinstaller:17.0.0'
}
  1. 清理缓存并重建项目
    执行以下命令刷新项目:
flutter clean
flutter pub get
flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:23:16