Firebase 始终返回空颤振的提供程序

Firebase 始终返回空颤振的提供程序,firebase,flutter,asynchronous,dart,flutter-provider,Firebase,Flutter,Asynchronous,Dart,Flutter Provider,我有一个提供程序对象,它上周一直在工作,直到我这样做 flutter channel stable flutter upgrade 现在,它总是返回null 这个问题发生在我的启动页面上。以下是该页面的内容: import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:boots/helper/enum.dart'; impo

我有一个提供程序对象,它上周一直在工作,直到我这样做

flutter channel stable
flutter upgrade
现在,它总是返回null

这个问题发生在我的启动页面上。以下是该页面的内容:

import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:boots/helper/enum.dart';
import 'package:boots/helper/theme.dart';
import 'package:boots/page/Auth/selectAuthMethod.dart';
import 'package:boots/page/homePage.dart';
import 'package:boots/state/authState.dart';
import 'package:boots/widgets/customWidgets.dart';
import 'package:provider/provider.dart';

class SplashPage extends StatefulWidget {
  SplashPage({Key key}) : super(key: key);

  @override
  _SplashPageState createState() => _SplashPageState();
}

class _SplashPageState extends State<SplashPage> {
  @override
  void initState() {
    WidgetsBinding.instance.addPostFrameCallback((_) {
      timer();
    });
    super.initState();
  }

  void timer() async {
    Future.delayed(Duration(seconds: 1)).then((_) {
      var state = Provider.of<AuthState>(context, listen: false);
      state.getCurrentUser();
    });
  }

  Widget _body() {
    var height = 150.0;
    return Container(
      height: fullHeight(context),
      width: fullWidth(context),
      child: Container(
        height: height,
        width: height,
        alignment: Alignment.center,
        child: Container(
          padding: EdgeInsets.all(50),
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.all(
              Radius.circular(10),
            ),
          ),
          child: Stack(
            alignment: Alignment.center,
            children: <Widget>[
              Platform.isIOS
                  ? CupertinoActivityIndicator(
                      radius: 35,
                    )
                  : CircularProgressIndicator(
                      strokeWidth: 2,
                    ),
              Image.asset(
                'assets/images/icon-480.png',
                height: 30,
                width: 30,
              )
            ],
          ),
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    var state = Provider.of<AuthState>(context);
    return Scaffold(
      backgroundColor: TwitterColor.white,
      body: state.authStatus == AuthStatus.NOT_DETERMINED
          ? _body()
          : state.authStatus == AuthStatus.NOT_LOGGED_IN
              ? WelcomePage()
              : HomePage(),
    );
  }
}

flutter run --release
日志:

I/颤振(13941):
E/flatter(13941):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(177)]未处理的异常:NoSuchMethodError:对null调用了方法“getCurrentUser”。
E/颤振(13941):接收器:空
E/flatter(13941):尝试调用:getCurrentUser()
E/颤振(13941):#0#SplashPageState.timer。(包装:靴子/页面/普通/飞溅。省道:31)
E/颤振(13941):#1 RootRunnary(dart:async/zone.dart:1198)
E/flatter(13941):#2_CustomZone.runUnary(dart:async/zone.dart:1100)
E/flatter(13941):#3 _FutureListener.handleValue(dart:async/future_impl.dart:143)
E/flatter(13941):#4未来。_传播到侦听器。handleValueCallback(dart:async/Future_impl.dart:696)
E/flatter(13941):#5未来。(dart:async/Future_impl.dart:725)
电子/颤振(13941):#6未来。_完成(dart:async/Future_impl.dart:519)
E/Flatter(13941):#7新未来。延迟。(dart:async/future.dart:323)
E/flatter(13941):#8_rootRun(dart:async/zone.dart:1182)
E/flatter(13941):#9_CustomZone.run(dart:async/zone.dart:1093)
E/flatter(13941):#10 _CustomZone.runguared(dart:async/zone.dart:997)
E/颤振(13941):#11_CustomZone.bindCallbackguared。(dart:async/zone.dart:1037)
E/flatter(13941):#12_rootRun(dart:async/zone.dart:1190)
E/flatter(13941):#13 _CustomZone.run(dart:async/zone.dart:1093)
E/颤振(13941):#14_CustomZone.bindCallback。(dart:async/zone.dart:1021)
E/flatter(13941):#15 TickerFuture.whencomplete或cancel.thunk(包:flatter/src/scheduler/ticker.dart:399)
E/flatter(13941):#16个计时器。(dart:isolate patch/Timer_impl.dart:397)
E/flatter(13941):#17 _定时器。_handleMessage(dart:隔离补丁/定时器_impl.dart:428)
E/颤振(13941):#18 RawReceivePortImpl.handleMessage(dart:isolate patch/isolate_patch.dart:168)
E/颤振(13941):

请我想纠正这个问题,因为我的应用程序无法再启动,由于这一点。非常感谢您的帮助

我的更新导致需要添加新的firebase依赖项

在pubspec.yaml中,必须添加:

firebase_core: ^0.5.2
总而言之,我必须补充一点

await Firebase.initializeApp();
就在之前

runApp(MyApp());

把这件事提上来
flutter run --release
I/flutter (13941): 
E/flutter (13941): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The method 'getCurrentUser' was called on null.
E/flutter (13941): Receiver: null
E/flutter (13941): Tried calling: getCurrentUser()
E/flutter (13941): #0      _SplashPageState.timer.<anonymous closure> (package:boots/page/common/splash.dart:31)
E/flutter (13941): #1      _rootRunUnary (dart:async/zone.dart:1198)
E/flutter (13941): #2      _CustomZone.runUnary (dart:async/zone.dart:1100)
E/flutter (13941): #3      _FutureListener.handleValue (dart:async/future_impl.dart:143)
E/flutter (13941): #4      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696)
E/flutter (13941): #5      Future._propagateToListeners (dart:async/future_impl.dart:725)
E/flutter (13941): #6      Future._complete (dart:async/future_impl.dart:519)
E/flutter (13941): #7      new Future.delayed.<anonymous closure> (dart:async/future.dart:323)
E/flutter (13941): #8      _rootRun (dart:async/zone.dart:1182)
E/flutter (13941): #9      _CustomZone.run (dart:async/zone.dart:1093)
E/flutter (13941): #10     _CustomZone.runGuarded (dart:async/zone.dart:997)
E/flutter (13941): #11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037)
E/flutter (13941): #12     _rootRun (dart:async/zone.dart:1190)
E/flutter (13941): #13     _CustomZone.run (dart:async/zone.dart:1093)
E/flutter (13941): #14     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1021)
E/flutter (13941): #15     TickerFuture.whenCompleteOrCancel.thunk (package:flutter/src/scheduler/ticker.dart:399)
E/flutter (13941): #16     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:397)
E/flutter (13941): #17     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:428)
E/flutter (13941): #18     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168)
E/flutter (13941):
firebase_core: ^0.5.2
await Firebase.initializeApp();
runApp(MyApp());