flutter - 上下文第二次为空
问题描述
我刚刚开始构建一个新应用程序,并且我正在使用 Firebase 通过 google 登录。如果用户已经登录,它会自动将用户带到 user_page。当我第一次尝试登录时一切正常,但如果我注销并尝试再次登录,我会收到此异常:NoSuchMethodError (NoSuchMethodError: The method 'onGoogleSignIn' was called on null. Receiver: null 尝试调用: onGoogleSignIn('StatelessElement'的实例)) 在我的登录页面中。这是我的代码:我的退出按钮:
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"),
)
],
),
),
),
);
}
}
我能做些什么来解决这个问题?谢谢!
解决方案
推荐阅读
- c# - 我团队的一位高级开发人员告诉我,编写这样的 SQL 命令是安全的,“因为它是参数化的”,但我不明白如何
- corda - 如何修复在测试网错误中将cordapp部署到corda节点
- ssas - 年初至今的 MDX 计算量度
- angular - Angular:如何在服务组件内缓存 api 调用的响应?
- angular - 属性“_touched”是私有的,只能在“AbstractControl”类中访问。?
- java - 来自钱包的虚假推送和未更改的传递错误
- reactjs - 如何为 CRA 包制作可配置的 json 文件
- javascript - 滑动菜单,如何同时滑入滑出?
- java - SparkJava Web浏览器在部署war文件时下载html文件而不是显示
- python - 为什么我的列表打印没有附加问题