无法使用带有Firebase的Flutter从Facebook注销

时间:2019-05-02 18:48:52

标签: facebook flutter flutter-dependencies

我有一个Flutter应用,可在其中通过Facebook和iOS上的Firebase进行身份验证。但是,尽管我正在调用注销功能,但是我无法再次获得登录页面

我总是会看到Facebook确认屏幕,其中包含一些文本,通知我我已经登录。

如何注销,以便下次要求输入我的电子邮件/密码

这是我的代码段

Future<FirebaseUser> signInWithFacebook();
final FirebaseAuth _auth = FirebaseAuth.instance;

Future<FirebaseUser> signInWithFacebook() async {
    FirebaseUser user;
    var result = await _facebookLogin
        .logInWithReadPermissions(['email', 'public_profile']);
    if (result.status == FacebookLoginStatus.loggedIn) {
      FacebookAccessToken myToken = result.accessToken;
      AuthCredential credential =
          FacebookAuthProvider.getCredential(accessToken: myToken.token);
      user = await _auth.signInWithCredential(credential);
    }
    return user;
  }


Future<void> signOut() async {
    await _facebookLogin.logOut();
    await _auth.signOut();
  }

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

Firebase将FirebaseUser对象保存在缓存中,因此用户每次离开应用程序时都不需要重新登录。因此signOut函数应如下所示:

Future<void> signOut() async {
    await _facebookLogin.logOut();
    await _auth.signOut();
    _user = null;
  }

FirebaseUser user;应该移出signInWithFacebook函数(我将其重命名为_user)。