Flutter 上下文第二次为空

Flutter 上下文第二次为空,flutter,dart,firebase-authentication,google-signin,Flutter,Dart,Firebase Authentication,Google Signin,我刚刚开始构建一个新的应用程序,我正在使用Firebase登录google。如果用户已经登录,它会自动将用户转到用户页面。当我第一次尝试登录时,一切正常,但是如果我注销并再次尝试登录,我会得到以下异常:NoSuchMethodError(NoSuchMethodError:onGoogleSignIn方法在null上被调用。 收件人:空 尝试在我的登录页面中调用:onGoogleSignIn(“无状态元素”)实例。这是我的代码: 我的注销按钮: RaisedButton(

我刚刚开始构建一个新的应用程序,我正在使用Firebase登录google。如果用户已经登录,它会自动将用户转到用户页面。当我第一次尝试登录时,一切正常,但是如果我注销并再次尝试登录,我会得到以下异常:NoSuchMethodError(NoSuchMethodError:onGoogleSignIn方法在null上被调用。 收件人:空 尝试在我的登录页面中调用:onGoogleSignIn(“无状态元素”)实例。这是我的代码: 我的注销按钮:

 RaisedButton(
              color: Colors.red,
              onPressed: () {
                widget._googleSignIn.signOut();
                Navigator.pushReplacement(
                    context,
                    MaterialPageRoute(
                        builder: (BuildContext) =>
                            SignInPage(widget._signInRepo)));
              },
我的登录服务:

    import 'package:eventorganiser/ui/pages/user_page.dart';
    import 'package:firebase_auth/firebase_auth.dart';
    import 'package:flutter/material.dart';
    
    import 'google_sign_in_service.dart';
    
    class SignInService{
      final GoogleSignInService _googleSignInService;
    
      SignInService(this._googleSignInService);
    
      Future<void> onGoogleSignIn(BuildContext context) async {
        FirebaseUser user = await _googleSignInService.handleSignIn();
        Navigator.push(context, MaterialPageRoute(builder: (context)=> UserPage(user, _googleSignInService.googleSignIn)));
      }
    }
my sign_in_page:

    import 'package:eventorganiser/repos/sign_in_repo.dart';
import 'package:flutter/material.dart';

class SignInPage extends StatelessWidget {
  final SignInRepo signInRepo;
  SignInPage(this.signInRepo);
  @override
  Widget build(BuildContext context) {
    return Material(
      color: Colors.red[900],
      child: Container(
        height: MediaQuery.of(context).size.height,
        width: MediaQuery.of(context).size.width,
        child: Center(
          child: Column(
            children: <Widget>[
              SizedBox(
                height: 425,
              ),
              RaisedButton(
                onPressed: () {
                  signInRepo.onGoogleSignIn(context);
                },
                child: Text("Bejelentkezés Google-lel"),
              )
            ],
          ),
        ),
      ),
    );
  }
}
import'package:eventorganizer/ui/pages/user_page.dart';
导入“包:firebase_auth/firebase_auth.dart”;
进口“包装:颤振/材料.省道”;
导入“google_sign_in_service.dart”;
类标志服务{
最终谷歌签名服务(GoogleSignInService);;
信号服务(本.\u谷歌信号服务);
未来onGoogleSignIn(构建上下文)异步{
FirebaseUser=wait_googleSignInService.handleSignIn();
push(context,materialpage(builder:(context)=>UserPage(user,_googleSignInService.googleSignIn));
}
}
我的登录页面:
导入“包:EventOrganizer/repos/sign_in_repo.dart”;
进口“包装:颤振/材料.省道”;
类签名页扩展了无状态小部件{
最终签署采购订单签署采购订单;
签名页(本签名页);
@凌驾
小部件构建(构建上下文){
退货(
颜色:颜色。红色[900],
子:容器(
高度:MediaQuery.of(context).size.height,
宽度:MediaQuery.of(context).size.width,
儿童:中心(
子:列(
儿童:[
大小盒子(
身高:425,
),
升起的按钮(
已按下:(){
SignenRepo.onGoogleSignIn(上下文);
},
儿童:文本(“Bejelentkezés Google lel”),
)
],
),
),
),
);
}
}
我能做些什么来解决这个问题? 谢谢