Flutter flutter_facebook_auth 插件注销时不清除数据

问题描述

我正在使用 Flutter_facebook_auth 3.5.0 插件用户能够使用他们的 Facebook 帐户登录我的应用程序。

一切都按预期进行。但是当我注销并再次尝试登录时,它不会提示我输入凭据并直接登录

我希望它提示用户输入他们的 Facebook 帐户凭据,然后仅在身份验证成功时登录应用程序。

以下是登录代码

Future<void> signInWithFacebook(BuildContext context) async {
    User? firebaseUser;
    LoginResult response = await FacebookAuth.instance.login();
    AuthCredential facebookCredential = FacebookAuthProvider.credential(response.accesstoken!.token);
    final UserCredential userCredential = await FirebaseAuth.instance.signInWithCredential(facebookCredential);
    firebaseUser = userCredential.user;
    switch (response.status) {
      case LoginStatus.success:
        final userData = await FacebookAuth.instance.getUserData();
        facebookUserData = userData;
        firestoreInstance.collection("users").doc(firebaseUser!.uid).set({
          "userID": firebaseUser.uid,"name": facebookUserData["name"],"photo": facebookUserData["picture"]["data"]["url"],"emailAddress": facebookUserData["email"],"signUpMethod": "facebook","accountCreatedOn": Timestamp.Now(),"receiveOffers": true,"isAdmin": false,"isAuth": false,"isSubscribed": false,});
        Navigator.of(context).pushReplacement(ScaledAnimationPageRoute(HomePage()));
        break;
      case LoginStatus.cancelled:
        print("Facebook: User cancelled login");
        break;
      case LoginStatus.Failed:
        print("Facebook: Login error!");
        break;
      case LoginStatus.operationInProgress:
        // Todo: Handle this case.
        break;
    }
  }

以下是注销方法

await FacebookAuth.instance.logout();
      facebookUserData = {};
      await authInstance.signOut().then((value) => Navigator.of(context).pushReplacement(ScaledAnimationPageRoute(SignIn())));

我认为 AuthCredential 需要在用户注销时清除。我不知道该怎么做。

我是 Flutter 的新手,谁能帮我解决这个问题。提前致谢。

解决方法

flutter_facebook_auth 3.5.0 here 的 github 项目已经存在问题。

它看起来像是对 Facebook 的模仿,而不是插件本身。

,

改用名为 flutter_facebook_login 的包...我正在使用这个包并且它运行良好

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...