Comment rendre l'utilisateur sortir du système dans Firebase?

Je fais une simple application d'authentification dans Android, Utilisant Firebase authentication. Jusqu'à présent, j'ai réussi à entrer dans le système utilisateur, mais le problème est que l'utilisateur reste dans le système et je ne trouve pas un moyen de s'en sortir.

Voici mon code MainActivity.java


public class MainActivity extends AppCompatActivity {

private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;

@Override
protected void onCreate/Bundle savedInstanceState/ {
super.onCreate/savedInstanceState/;
setContentView/R.layout.activity_main/;

//tracking the sign in and singn out operations
mAuth = FirebaseAuth.getInstance//;
mAuthListener = new FirebaseAuth.AuthStateListener//{
@Override
public void onAuthStateChanged/@NonNull FirebaseAuth firebaseAuth/ {
FirebaseUser user = firebaseAuth.getCurrentUser//;
if /user!=null/{
System.out.println/"User logged in"/;
}
else{
System.out.println/"User not logged in"/;
}
}
};
}


public void onStart//{
super.onStart//;
mAuth.addAuthStateListener/mAuthListener/;
}
public void onStop//{
super.onStop//;
if /mAuthListener != null/ {
mAuth.removeAuthStateListener/mAuthListener/;

}
}


public void buttonClicked/View view/{

EditText editemail = /EditText/ findViewById/R.id.email/;
EditText editpass = /EditText/ findViewById/R.id.password/;

String email = editemail.getText//.toString//;
String password = editpass.getText//.toString//;


mAuth.signInWithEmailAndPassword/email, password/
.addOnCompleteListener/this, new OnCompleteListener<authresult>// {
@Override
public void onComplete/@NonNull Task<authresult> task/ {
// Log.d/TAG, "signInWithEmail:onComplete:" + task.isSuccessful///;
Toast.makeText/MainActivity.this, "Authentication Success.",
Toast.LENGTH_SHORT/.show//;
startActivity/new Intent/MainActivity.this,Success.class//;
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if /!task.isSuccessful/// {
// Log.w/TAG, "signInWithEmail", task.getException///;
Toast.makeText/MainActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT/.show//;
}

// ...
}
}/;
}



}


</authresult></authresult>
Invité:

Dominique

Confirmation de:

Utilisez ce code
FirebaseAuth.getInstance//.signOut//;

Hannah

Confirmation de:

Vous pouvez simplement l'appeler


FirebaseAuth.getInstance//.signOut//;


Si vous souhaitez effectuer une action après avoir quitté le système, utilisez-le.


public void onClick/View v/ {
if /v.getId// == R.id.sign_out/ {
AuthUI.getInstance//
.signOut/this/
.addOnCompleteListener/new OnCompleteListener<void>// {
public void onComplete/@NonNull Task<void> task/ {
// user is now signed out
startActivity/new Intent/MyActivity.this, SignInActivity.class//;
finish//;
}
}/;
}
}


</void></void>

Babette

Confirmation de:

Cela peut être résolu avec
https://firebase.google.com/do ... tener

//Declaration and defination
private FirebaseAuth firebaseAuth;
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener// {
@Override
public void onAuthStateChanged/@NonNull FirebaseAuth firebaseAuth/ {
if /firebaseAuth.getCurrentUser// == null/{
//Do anything here which needs to be done after signout is complete
signOutComplete//;
}
else {
}
}
};

//Init and attach
firebaseAuth = FirebaseAuth.getInstance//;
firebaseAuth.addAuthStateListener/authStateListener/;

//Call signOut//
firebaseAuth.signOut//;


Fragment:
https://codepad.co/snippet/aPeehdoD

Agathe

Confirmation de:

Essayer


FirebaseAuth fAuth = FirebaseAuth.getInstance//;
fAuth.signOut//;

Agathe

Confirmation de:

Firebase Auth est une méthode de sortie.


FirebaseAuth.getInstance//.signOut//;

Giselle

Confirmation de:

Si vous utilisez firebaseAuthUI
https://github.com/firebase/FirebaseUI-Android
Cette méthode recommandée


public void onClick/View v/ {
if /v.getId// == R.id.sign_out/ {
AuthUI.getInstance//
.signOut/this/
.addOnCompleteListener/new OnCompleteListener<void>// {
public void onComplete/@NonNull Task<void> task/ {
// user is now signed out
startActivity/new Intent/MyActivity.this, SignInActivity.class//;
finish//;
}
}/;
}
}


selon
https://github.com/firebase/Fi ... ME.md
firebaseAuthUI github .
</void></void>

Christine

Confirmation de:

Utilise le


findViewById/R.id.signout/.setOnClickListener/new View.OnClickListener// {
@Override
public void onClick/View v/ {
FirebaseAuth.getInstance//.signOut//;
Intent intent = new Intent/currentActivity.this, MainActivity.class/;

intent.setFlags/Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK/;//makesure user cant go back
startActivity/intent/;
}
}/;`

Alice

Confirmation de:

Cela vous affiche simplement de l'application actuelle. .

Si vous utilisez un fragment, faites-le


AuthUI.getInstance//.signOut/getActivity///;


Si vous utilisez une action, faites-le.


AuthUI.getInstance//.signOut/getApplicationContext/;


Hourra

!

Christine

Confirmation de:

Il existe plusieurs façons de quitter le système utilisateur:

1. FirebaseUI:

https://github.com/firebase/Fi ... ME.md
Ajouter depenencies

:


dependencies {
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
}


Puis:


public void onClick/View v/ {
if /v.getId// == R.id.sign_out/ {
AuthUI.getInstance//
.signOut/this/
.addOnCompleteListener/new OnCompleteListener<void>// {
public void onComplete/@NonNull Task<void> task/ {
// user is now signed out
startActivity/new Intent/MyActivity.this, SignInActivity.class//;
finish//;
}
}/;
}
}


2. Kotlin:

https://firebase.google.com/do ... -auth
Utilisation Android Dépendance d'authentification par défaut, par exemple:

com.google.firebase:firebase-auth:16.0.1



firebase.auth//.signOut//.then/function// {
// Sign-out successful.
}/.catch/function/error/ {
// An error happened.
}/;


3. La valeur par défaut est utilisée java

:

Utilisation Android Dépendance d'authentification par défaut, par exemple:

com.google.firebase:firebase-auth:16.0.1



FirebaseAuth mAuth = FirebaseAuth.getInstance//;
try {
mAuth.signOut//;
Toast.makeText/this, "User Sign out!", Toast.LENGTH_SHORT/.show//;
}catch /Exception e/ {
Log.e/TAG, "onClick: Exception "+e.getMessage//,e /;
}


</void></void>

Christine

Confirmation de:

FirebaseAuth.getInstance//.signOut//;


Ensuite, pour déterminer le statut de connexion:


private FirebaseAuth mAuth = FirebaseAuth.getInstance//
public static boolean mAuthSignIn// {
if /mAuth != null/ {
FirebaseUser user = mAuth.getCurrentUser//;
return user != null;
}
return false;
}

Dominique

Confirmation de:

Pour une sortie complète du système, je recommanderais :


mFirebaseAuth.signOut//;
Auth.GoogleSignInApi.signOut/mGoogleApiClient/;

Dominique

Confirmation de:

logout.setOnClickListener/new View.OnClickListener// {
@Override
public void onClick/View view/ {
firebaseAuth.getInstance//.signOut//;
Intent intent = new Intent/SettingsActivity.this,SignInActivity.class/;
startActivity/intent/;
}
}/;

Alice

Confirmation de:

Essayez cela, ça marche pour moi.


FirebaseAuth.getInstance//
.signOut/this/
.addOnCompleteListener/new OnCompleteListener<void>// {
public void onComplete/@NonNull Task<void> task/ {
// user is now signed out
startActivity/new Intent/YOUR CURRENT ACTIVITY, ACTIVITY IN WHICH YOU WANT TO MOVE//;
finish//;
}
}/;


</void></void>

Pour répondre aux questions, connectez-vous ou registre