तो मुझे पता चला कि Google के साथ सही तरीके से साइनआउट कैसे करें। ठंडा। अब, फेसबुक के बारे में क्या?फायरबेस के साथ एंड्रॉइड पर फेसबुक से ठीक से साइन आउट कैसे करें?
जब मुझे फेसबुक पर साइन इन करने में कोई त्रुटि मिलती है, जैसे कि एक त्रुटि के रूप में संकेत मिलता है कि मेरे पास पहले से ही एक ही प्रमाण-पत्र के साथ फ़ायरबेस खाता है लेकिन एक अलग सामाजिक प्रदाता है, तो मुझे "फेसबुक से लॉग आउट" बटन मिलता है। अधिक स्पष्ट है:
मैं फेसबुक में प्रवेश करने का प्रयास करें, तो मैं (! यह मेरी समस्या नहीं है) कोई त्रुटि मिलती है, लेकिन समस्या यह है, फेसबुक के बटन "लॉग आउट करें" पर है। जब इसे अभी भी"फेसबुक के साथ साइन इन करें" होना चाहिए। मुझे पता है कि यह क्यों हो रहा है; यह क्योंकि त्रुटि Firebase साथ है असली सवाल है और फेसबुक मैं में साइन इन हूं सोचता है।
लेकिन, मैं कैसे ठीक से फेसबुक से साइन आउट करते हैं? FirebaseAuth.getInstance().signout()
फेसबुक के लॉगआउट को प्रतीत नहीं होता है।
यहाँ मेरे वर्तमान logout()
विधि है:
static void logOut(final Context context) {
new SweetAlertDialog(context, SweetAlertDialog.WARNING_TYPE)
.showCancelButton(true)
.setTitleText(context.getString(R.string.areYouSure))
.setContentText(context.getString(R.string.logoutMSG))
.setCancelText(context.getString(android.R.string.no))
.setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(SweetAlertDialog sweetAlertDialog) {
sweetAlertDialog.dismiss();
}
})
.setConfirmText(context.getString(R.string.yes))
.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(final SweetAlertDialog sweetAlertDialog) {
//region Google
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(context.getString(R.string.default_web_client_id))
.requestEmail()
.build();
final GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(context)
.enableAutoManage((FragmentActivity) context, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
FirebaseCrash.log(connectionResult.getErrorMessage());
Toast.makeText(context, context.getString(R.string.error), Toast.LENGTH_SHORT).show();
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
mGoogleApiClient.registerConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {@
Override
public void onConnected(@Nullable Bundle bundle) {
FirebaseAuth.getInstance().signOut();
if (mGoogleApiClient.isConnected()) {
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(new ResultCallback <Status>() {@
Override
public void onResult(@NonNull Status status) {
if (status.isSuccess()) {
FirebaseAuth.getInstance().signOut();
sweetAlertDialog.dismiss();
Log.d(TAG, "User Logged out");
Intent intent = new Intent(context, SignUp.class);
context.startActivity(intent);
((FragmentActivity) context).finish();
} else
Toast.makeText(context, context.getString(R.string.error), Toast.LENGTH_SHORT).show();
}
});
}
}
@
Override
public void onConnectionSuspended(int i) {
Log.e(TAG, "Google API Client Connection Suspended");
}
});
//endregion
}
}).show();
}
अरे का उपयोग कर हल मिल गया, उत्तर के लिए धन्यवाद, लेकिन मुझे अभी भी एक समस्या है। क्या होगा यदि उपयोगकर्ता अपना फेसबुक अकाउंट बदलना चाहता है? "लॉग इन" बटन पर क्लिक करने से स्वचालित रूप से उपयोगकर्ता चुनता है। –
मुझे लगता है कि यदि उपयोगकर्ता ने फेसबुक ऐप से अपना खाता बदल दिया है, तो अपने ऐप से लॉग इन पर क्लिक करके (लॉग आउट होने पर) उसे नए खाते से लॉगिन करने के लिए रीडायरेक्ट करेगा। हालांकि, यदि उसके पास अभी भी आपके ऐप पर एक सक्रिय सत्र है, तो आप इसके लिए एक विशिष्ट कार्रवाई करने के लिए जांच कर सकते हैं जैसे http://stackoverflow.com/questions/29294015/how-to-check-if-user -is-log-in-with-fb-sdk-4-0-for-android –
मुझे एक ही समस्या है। जब मैंने लॉग आउट किया, तो साइन आउट बटन अभी भी दिख रहा है। जब मैंने साइन आउट बटन पर क्लिक किया, तो मैं ठीक से लॉग आउट कर सकता हूं। –