Невозможно выйти из Facebook, используя флаттер с firebase - PullRequest
0 голосов
/ 02 мая 2019

У меня есть приложение для флаттера, в котором я аутентифицируюсь на Facebook и использую Firebase на iOS. Тем не менее, я не могу получить логин на странице снова, хотя я вызываю функцию выхода из системы

Я всегда получаю экран подтверждения 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 голосов
/ 03 мая 2019

Firebase сохраняет объект FirebaseUser в кеше, поэтому пользователю не нужно будет повторно входить в систему каждый раз, когда он покидает приложение. Поэтому функция signOut должна выглядеть так:

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

И FirebaseUser user; следует убрать из функции signInWithFacebook (я переименовал ее в _user).

...