Home > database >  How to logout facebook account for entring another account
How to logout facebook account for entring another account

Time:01-14

I am using flutter facebook auth.

When I login for the first time came to enter email and password after that I logout and went to login again then it did not ask for email and password.

When I login for the first time came to enter email and password after that I logout and went to login again then it did not ask for email and password.

and its looks like it enter image description here

this is my facebook login functionality


import 'package:cwc/ApiManager/preference.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';
final FirebaseAuth _auth = FirebaseAuth.instance;

// final GoogleSignIn googleSignIn = GoogleSignIn();

String? fbName;
String? fbEmail;
String? fbImageUrl;

Future<String?> signInWithFacebook() async {
  // Trigger the sign-in flow
  final LoginResult loginResult = await FacebookAuth.instance.login();
  // final GoogleSignInAccount? googleSignInAccount = await googleSignIn.signIn();
 var a= await loginResult.message;
  // Create a credential from the access token
  final OAuthCredential facebookAuthCredential = FacebookAuthProvider.credential(loginResult.accessToken!.token);
  print("facebookAuthCredential22 ${facebookAuthCredential.token}");
  print("facebookAuthCredential33 ${facebookAuthCredential.accessToken}");
  print("facebookAuthCredential44 ${facebookAuthCredential.rawNonce}");
  // Once signed in, return the UserCredential
  final UserCredential authResult =
  await _auth.signInWithCredential(facebookAuthCredential);
  final User? users = authResult.user;
  final UserInfo? user = users!.providerData[0];
  print("facebookAuthCredential11 $user");
  // return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);

  if (user != null) {
    // Checking if email and name is null
    // assert(user.email != null);
    assert(user.displayName != null);
    assert(user.photoURL != null);

    Preferences.saveData("socialName", user.displayName.toString());
    Preferences.saveData("socialEmail", user.email.toString());
    Preferences.saveData("socialImage", user.photoURL.toString());

    // Only taking the first part of the name, i.e., First Name
    // if (googleName!.contains(" ")) {
    //   googleName = googleName!.substring(0, googleName!.indexOf(" "));
    // }

    assert(!users.isAnonymous);
    assert(await users.getIdToken() != null);

    final User? currentUser = _auth.currentUser;
    assert(users.uid == currentUser!.uid);

    print('signInWithFacebook succeeded: $user');

    return '$user';
  }

  return null;
}

Future<void> signOutWithFacebook() async {
  await FacebookAuth.instance.logOut();
  print("User Signed Out");
}


CodePudding user response:

You'll also need to sign out of Facebook explicitly by calling:

FacebookAuth.instance.logOut()

Also see:

CodePudding user response:

You can call the setCustomParameters() method on FacebookAuthProvider.

And pass the consent parameter like so:

_facebookAuth.setCustomParameters({"consent":"select_account"});

You can read about the parameters you can pass to the consent on this answer

  •  Tags:  
  • Related