web-dev-qa-db-fra.com

Comment déconnecter des utilisateurs de Firebase 3.0?

Selon documentation , je force un utilisateur à se déconnecter avec la méthode signOut().

C'est ce que j'ai essayé:

var rootRef = firebase.database().ref();
var loggedInUser = firebase.auth();

1. firebase.signOut(); 
2. loggedInUser.signOut(); 
3. rootRef.signOut();
4. signOut();
5. firebase.auth.signOut();

Je reçois ... is not a function Pour chacun des cinq éléments ci-dessus. Je sais que ma référence à la nouvelle Firebase ne pose aucun problème, puisque firebase.database().ref(); et firebase.auth(); ne génère pas d'erreur. J'ai également migré l'application dans la console.

31
hellogoodnight

En JavaScript, vous pouvez déconnecter l'utilisateur avec:

firebase.auth().signOut().then(function() {
  console.log('Signed Out');
}, function(error) {
  console.error('Sign Out Error', error);
});
77
firebase.auth().signOut()

ça marche tout simplement pour moi!

5
Thien Nhan Nguyen

Il y a plusieurs façons de se déconnecter utilisateur:

1. FirebaseUI: référence

Ajouter des dépendances:

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

Ensuite:

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: référence

Utiliser Android Dépendance de l'authentification par défaut, ex:com.google.firebase:firebase-auth:16.0.1

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

3. Par défaut avec Java:

Utiliser Android Dépendance de l'authentification par défaut, ex:com.google.firebase:firebase-auth:16.0.1

FirebaseUser user = mAuth.getCurrentUser();
if (user != null){
    mAuth.signOut();
    Toast.makeText(this, user.getEmail()+ " Sign out!", Toast.LENGTH_SHORT).show();
}else{
    Toast.makeText(this, "You aren't login Yet!", Toast.LENGTH_SHORT).show();
}
3
Hasib Akter

Je ne sais pas si j'ai bien compris, mais si vous voulez vous déconnecter de chaque utilisateur connecté: ce n'est pas possible car le code est en cours d'exécution sur le client et l'état auth fait référence au client qui l'exécute. .

Vous ne pouvez pas accéder à tous les clients connectés au service d'authentification de la base firebase, car cela signifierait exécuter du code côté serveur.

Cependant, il existe une option pour spécifier la durée d'une session, qui est le paramètre rappelez-vous dans la section auth.

1
Thib