注销时flutter_facebook_auth插件未清除数据
Posted
技术标签:
【中文标题】注销时flutter_facebook_auth插件未清除数据【英文标题】:flutter_facebook_auth plugin not clearing the data when logging out 【发布时间】:2021-09-20 23:16:23 【问题描述】:我正在使用 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 的新手。我该如何解决这个问题?
【问题讨论】:
以上的解决方法你得到了吗? 【参考方案1】:flutter_facebook_auth 3.5.0
here的github项目上已经有issue了。
它看起来像是对 Facebook 的模仿,而不是插件本身。
【讨论】:
【参考方案2】:改用名为 flutter_facebook_login 的包...我正在使用这个包,它运行良好
【讨论】:
以上是关于注销时flutter_facebook_auth插件未清除数据的主要内容,如果未能解决你的问题,请参考以下文章