未处理的异常:类型“ FirebaseFirestore”不是类型“ Firestore”的子类型

时间:2020-10-30 21:30:28

标签: firebase flutter dart firebase-authentication

我正在构建一个Flutter应用程序。尝试添加Firebase数据库时,会出现此错误并显示空白屏幕

[ERROR:flutter / lib / ui / ui_dart_state.cc(166)]未处理的异常:类型“ FirebaseFirestore”不是类型“ Firestore”的子类型

下面是我的main.dart代码:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:sokoni/src/providers/auth.dart';
import 'package:sokoni/src/screens/Login.dart';
import 'package:sokoni/src/screens/home.dart';
import 'package:sokoni/src/widgets/loading.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async{
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  //we call our Multiproviders so that our App can recognize the providers we've used.

  runApp(
    MultiProvider(
      providers:[
      ChangeNotifierProvider.value(
      value: AuthProvider.initialize()
      )
  ],
   child:MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Sokoni',
      theme: ThemeData(    

        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
         ),
       home: ScreensController(),
          )
  ));
}

class ScreensController extends StatelessWidget{
  @override
  Widget build( BuildContext context) {
  
    final user = Provider.of<AuthProvider>(context);
    switch(user.status){
      case Status.Uninitialized:
      return Loading();
      case Status.Unauthenticated:
      case Status.Authenticating:
      return LoginScreen();
      case Status.Authenticated:
       return HomePage();
      default: return LoginScreen(); 
    }
  } 
}

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,解决了,所以回答以防万一有人受益。

错误: 'FirebaseFirestore' is not a subtype of type 'Firestore' 表示在某处您有两个不同的名称引用用作相同的名称。

检出所有的FirebaseFirestore实例创建代码或类型,对Firestore做同样的事情,用相同的或最新的替换所有的,即FirebaseFirestore,和{{1}自 2020 年底起,已弃用 Firestore

答案 1 :(得分:0)

请检查包裹。我看不到任何有关该异常的代码,但我认为,不同的firebase软件包之间存在冲突。

也许您可以添加您也可以添加相关代码