Flatter中的FirebaseAuth注销()不';行不通

Flatter中的FirebaseAuth注销()不';行不通,firebase,authentication,flutter,dart,firebase-authentication,Firebase,Authentication,Flutter,Dart,Firebase Authentication,我正在尝试从FirebaseAuth注销,但即使用户在我注销后为null,该实例似乎仍被缓存。 当我注销并再次登录时,user.metadata.lastSignInTime和FirebaseAuth.instance.hashCode仍与我注销前相同。 这导致即使在第二次登录后,当我检查user.creationTime==user.lastsignentime时,我的登录仍会显示 我的注销方法: void _logOut(BuildContext context) async { awa

我正在尝试从FirebaseAuth注销,但即使用户在我注销后为null,该实例似乎仍被缓存。 当我注销并再次登录时,
user.metadata.lastSignInTime
FirebaseAuth.instance.hashCode
仍与我注销前相同。 这导致即使在第二次登录后,当我检查
user.creationTime==user.lastsignentime
时,我的登录仍会显示

我的注销方法:

void _logOut(BuildContext context) async {
  await GoogleSignIn().signOut();
  await FirebaseAuth.instance.signOut();
}
user==null
时调用初始注册页:

class SignUpPage extends StatefulWidget {
  final String title;

  SignUpPage({Key key, this.title}) : super(key: key);

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

class SignUpPageState extends State<SignUpPage> {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  bool isloaded = false;
  @override
  void initState() {
    super.initState();
//detects when user logs out:
    _auth.onAuthStateChanged.listen((user) => {
          if (user == null)
            {
//This page is the first one in the route
              Navigator.of(context).popUntil((route) => route.isFirst),
              setState(() {
                isloaded = true;
              }),
            }
        });
    // Enabled persistent log-ins by checking the Firebase Auth instance for previously logged in users
    _auth.currentUser().then((user) {
      setState(() {
        isloaded = true;
      });
      if (user != null) {
        _pushPage(context, HomePage());
      }
    });
  }

  @override
  Widget build(BuildContext context) {
//Building Page here
}
}
class SignUpPage扩展了StatefulWidget{
最后的字符串标题;
SignUpPage({Key-Key,this.title}):super(Key:Key);
@凌驾
SignUpPageState createState()=>SignUpPageState();
}
类SignUpPageState扩展了状态{
final FirebaseAuth _auth=FirebaseAuth.instance;
bool isloaded=false;
@凌驾
void initState(){
super.initState();
//检测用户何时注销:
_auth.onAuthStateChanged.listen((用户)=>{
if(user==null)
{
//此页是路线中的第一页
Navigator.of(context.popintil)((route)=>route.isFirst),
设置状态(){
isloaded=true;
}),
}
});
//通过检查Firebase Auth实例中以前登录的用户来启用持久登录
_auth.currentUser().then((用户){
设置状态(){
isloaded=true;
});
如果(用户!=null){
_pushPage(上下文,主页());
}
});
}
@凌驾
小部件构建(构建上下文){
//在这里建立页面
}
}

我刚开始学习Flatter,但我尽我所能在_logOut()中完全处理FirebaseAuth.instance,但没有成功。

您可以尝试在您的_logOut()中添加PopTill或PushAndRemoveTill@Ggriffo谢谢您的回答,但这不是我的问题。我的问题是_auth实例在注销后没有从缓存中完全删除。