Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 在颤振中使用多供应器和耗电元件时出错_Firebase_Flutter_Google Cloud Firestore_Google Authentication_Flutter Provider - Fatal编程技术网

Firebase 在颤振中使用多供应器和耗电元件时出错

Firebase 在颤振中使用多供应器和耗电元件时出错,firebase,flutter,google-cloud-firestore,google-authentication,flutter-provider,Firebase,Flutter,Google Cloud Firestore,Google Authentication,Flutter Provider,我最近更新了firebase依赖项。我不推荐这样做,顺便说一句,我的经历很糟糕。谷歌不知道应该遵循什么命名约定 在更新和修复了所有由它们引起的错误后,我尝试运行我的应用程序,并得到了初始化firebase错误。在那个错误得到缓解之后,我似乎遇到了一个我无法解决的错误 这是相关代码 Widget build(BuildContext context) { return StreamProvider<UserTutor>.value( value: AuthSer

我最近更新了firebase依赖项。我不推荐这样做,顺便说一句,我的经历很糟糕。谷歌不知道应该遵循什么命名约定

在更新和修复了所有由它们引起的错误后,我尝试运行我的应用程序,并得到了初始化firebase错误。在那个错误得到缓解之后,我似乎遇到了一个我无法解决的错误

这是相关代码

Widget build(BuildContext context) {
    return StreamProvider<UserTutor>.value(
        value: AuthService().user,
        child: Consumer<UserTutor>(
          builder: (_, user, __) {
            return MultiProvider(
              providers: [
                
                user == null
                    ? StreamProvider<Tutor>.value(
                        value: DatabaseService().streamTutor,
                      )
                    : StreamProvider<Tutor>.value(
                        value: DatabaseService(uid: user.uid).streamTutor,
                      ),
                user == null
                    ? StreamProvider<List<ClassData>>.value(
                        value: DatabaseService().classdata)
                    : StreamProvider<List<ClassData>>.value(
                        value: DatabaseService(uid: user.uid).classdata),
               
              ],
              child: MaterialApp(
                home: Wrapper(),
                debugShowCheckedModeBanner: false,
              ),
            );
          },
        ));
  }


final FirebaseAuth _auth = FirebaseAuth.instance;
  final GoogleSignIn googleSignIn = GoogleSignIn();

  //create user obj based on firebase user
  UserTutor _userFromFirebaseUser(User user) {
    return user != null ? UserTutor(uid: user.uid, email: user.email) : null;
  }

  //auth change user stream
  Stream<UserTutor> get user {
    return _auth
        .authStateChanges()
        .map((User user) => _userFromFirebaseUser(user));
  }
小部件构建(构建上下文){
返回StreamProvider.value(
值:AuthService()。用户,
儿童:消费者(
生成器:(uu,用户,uu){
回程多供应商(
供应商:[
用户==null
?StreamProvider.value(
值:DatabaseService().streamTutor,
)
:StreamProvider.value(
值:DatabaseService(uid:user.uid).streamTutor,
),
用户==null
?StreamProvider.value(
值:DatabaseService().classdata)
:StreamProvider.value(
值:DatabaseService(uid:user.uid).classdata),
],
孩子:MaterialApp(
主:Wrapper(),
debugShowCheckedModeBanner:false,
),
);
},
));
}
final FirebaseAuth _auth=FirebaseAuth.instance;
最终谷歌签名谷歌签名=谷歌签名();
//基于firebase用户创建用户obj
UserTutor\u userFromFirebaseUser(用户){
返回用户!=null?UserTutor(uid:user.uid,email:user.email):null;
}
//身份验证更改用户流
流获取用户{
返回_auth
.authStateChanges()
.map((用户)=>\u userFromFirebaseUser(用户));
}
这是我收到的错误

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building Consumer<UserTutor>(dirty, dependencies:
flutter: [_InheritedProviderScope<UserTutor>]):
flutter: a collection path must point to a valid collection.
flutter: 'package:cloud_firestore/src/firestore.dart':
flutter: Failed assertion: line 74 pos 12: 'isValidCollectionPath(collectionPath)'
flutter:
flutter: The relevant error-causing widget was:
flutter:   Consumer<UserTutor>
flutter:   file:///Users/devintripp/Desktop/flutter_apps.no_sync/discoverytutors/lib/main.dart:25:16
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2      FirebaseFirestore.collection (package:cloud_firestore/src/firestore.dart:74:12)
flutter: #3      new DatabaseService (package:disc_t/Services/database.dart:19:34)
flutter: #4      MyApp.build.<anonymous closure> (package:disc_t/main.dart:37:32)
flutter: #5      Consumer.buildWithChild (package:provider/src/consumer.dart:175:19)
flutter: #6      SingleChildStatelessWidget.build (package:nested/nested.dart:260:41)
flutter: #7      StatelessElement.build (package:flutter/src/widgets/framework.dart:4620:28)
flutter: #8      SingleChildStatelessElement.build (package:nested/nested.dart:280:18)
flutter: #9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)
flutter: #10     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
flutter: #11     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4525:5)
flutter: #12     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5)
flutter: #13     SingleChildWidgetElementMixin.mount (package:nested/nested.dart:223:11)
flutter: #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
flutter: #15     Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)
flutter: #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
flutter: #17     _InheritedProviderScopeElement.performRebuild (package:provider/src/inherited_provider.dart:426:11)
flutter: #18     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
flutter: #19     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4525:5)
flutter: #20     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5)
flutter: ...     Normal element mounting (7 frames)
flutter: #27     SingleChildWidgetElementMixin.mount (package:nested/nested.dart:223:11)
flutter: ...     Normal element mounting (7 frames)
flutter: #34     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
flutter: #35     Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)
flutter: #36     RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1174:16)
flutter: #37     RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1145:5)
flutter: #38     RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1087:17)
flutter: #39     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:19)
flutter: #40     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1086:13)
flutter: #41     WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:927:7)
flutter: #42     WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:908:7)
flutter: (elided 13 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
flutter:
颤振:══╡ WIDGETS库捕获到异常╞═══════════════════════════════════════════════════════════
颤振:在构建使用者时抛出了以下断言(脏的,依赖项:
颤振:[[u InheritedProviderScope]):
颤振:集合路径必须指向有效集合。
flatter:'package:cloud\u firestore/src/firestore.dart':
颤振:失败的断言:第74行位置12:“isValidCollectionPath(collectionPath)”
颤振:
颤振:导致错误的相关小部件是:
颤振:消费者
颤振:file:///Users/devintripp/Desktop/flutter_apps.no_sync/discoverytutors/lib/main.dart:25:16
颤振:
颤振:抛出异常时,这是堆栈:
flatter:#2 FirebaseFirestore.collection(包:cloud_firestore/src/firestore.dart:74:12)
flatter:#3新数据库服务(包:disc#t/Services/database.dart:19:34)
颤振:#4 MyApp.build。(包装:圆盘/主。省道:37:32)
颤振:#5 Consumer.buildWithChild(包:provider/src/Consumer.dart:175:19)
flatter:#6 SingleChildStatelessWidget.build(包:嵌套/嵌套.dart:260:41)
flatter:#7无状态元素.build(包:flatter/src/widgets/framework.dart:4620:28)
颤振:#8 SingleChildStatelement.build(包:嵌套/嵌套。dart:280:18)
flatter:#9 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4546:15)
flatter:#10 Element.rebuild(包:flatter/src/widgets/framework.dart:4262:5)
flatter:#11 ComponentElement._firstBuild(包:flatter/src/widgets/framework.dart:4525:5)
flatter:#12 ComponentElement.mount(包:flatter/src/widgets/framework.dart:4520:5)
颤振:#13 SingleChildWidgetElementMixin.mount(包:嵌套/嵌套。dart:223:11)
flatter:#14 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3490:14)
flatter:#15 Element.updateChild(包:flatter/src/widgets/framework.dart:3258:18)
flatter:#16 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4571:16)
颤振:#17_InheritedProviderScopeElement.performRebuild(包:provider/src/inherited_provider.dart:426:11)
flatter:#18 Element.rebuild(包:flatter/src/widgets/framework.dart:4262:5)
flatter:#19 ComponentElement._firstBuild(包:flatter/src/widgets/framework.dart:4525:5)
flatter:#20 ComponentElement.mount(包:flatter/src/widgets/framework.dart:4520:5)
颤振:。。。正常元件安装(7个机架)
颤振:#27 SingleChildWidgetElementMixin.mount(包:嵌套/嵌套。dart:223:11)
颤振:。。。正常元件安装(7个机架)
flatter:#34 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3490:14)
flatter:#35 Element.updateChild(包:flatter/src/widgets/framework.dart:3258:18)
flatter:#36 RenderObjectToWidgetElement._重建(包:flatter/src/widgets/binding.dart:1174:16)
flatter:#37 RenderObjectToWidgetElement.mount(包:flatter/src/widgets/binding.dart:1145:5)
颤振:#38 RenderObjectToWidgetAdapter.attachToRenderTree。(软件包:flatter/src/widgets/binding.dart:1087:17)
flatter:#39 BuildOwner.buildScope(包:flatter/src/widgets/framework.dart:2620:19)
flatter:#40 RenderObjectToWidgetAdapter.attachToRenderTree(包:flatter/src/widgets/binding.dart:1086:13)
flatter:#41 WidgetsBinding.attachRootWidget(包:flatter/src/widgets/binding.dart:927:7)
颤振:#42 widgetsbind.scheduleAttachRootWidget。(包:flatter/src/widgets/binding.dart:908:7)
颤振:(从类断言错误、类RawReceivePortImpl、类计时器、dart:async和dart:async补丁中删除了13帧)
颤振:

stacktrace显示错误来自DatabaseService,这些流是否调用firestore集合?如果是,你确定他们说的对吗?我发现了问题所在。一个你不能再使用消费者智慧的东西