signOut method

Future<void> signOut({
  1. bool shouldNotify = true,
  2. bool canReauthenticate = true,
})

Implementation

Future<void> signOut(
    {bool shouldNotify = true, bool canReauthenticate = true}) async {
  String? previousUid = uid;
  bool wasAnonymous = isAnonymous;

  await actionsBeforeLogOut?.call(firebaseUser);

  await _myFirebaseAuth.signOut();
  _authStatus = AuthStatus.NOT_LOGGED;
  $.log("Status $_authStatus", name: LOG_TITLE);

  if (autoSignInAnonymously && canReauthenticate) {
    await _signIn(AuthMethod.ANONYMOUS, shouldNotify: false);
  }

  if (wasAnonymous && previousUid != null) {
    $.log("Zombie: $previousUid", name: LOG_TITLE);
    await onZombieGenerated?.call(previousUid);
  }

  if (shouldNotify) notifyListeners();
}