Ich verwende Firebase von Google und ich habe einige Probleme mit der Benutzerauthentifizierung. Nach dem Einloggen mit Facebook erhalte ich FirebaseUser in AuthStateListener, aber wie kann ich feststellen, ob dieser Benutzer über Facebook oder anders angemeldet ist?So ermitteln Sie, ob ein Firebase-Benutzer mit Facebook-Authentifizierung angemeldet ist
UPDATE Wie @Frank van Puffelen sagte FirebaseAuth.getInstance(). GetCurrentUser(). GetProviderId() sollte "facebook" zurück, aber in meinem Fall gibt es "Firebase". Jetzt kann ich nicht herausfinden, was der Grund für dieses Verhalten ist. Als ich FacebookToken bekam ich so etwas wie dieses:
AuthCredential credential = FacebookAuthProvider.getCredential(facebookToken.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
// 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()) {
}
}
});
Und vor onComplete Afterthat() -Methode aufgerufen wird, mein AuthStateListener bekommt Benutzer, die Anbieter-ID ist nicht „facebook“, wie es sein sollte. Mache ich etwas falsch? Ich folgte offiziellen Google documentation
ich glaube, dass FirebaseUser.getProviderId() gibt „facebook.com“ aber ich kann es nicht testen, da mein App nicht Facebook nicht verwendet. Vielleicht versuchen Sie es, wenn Sie könnten? –
Schauen Sie sich bitte meine aktualisierte Frage an. – Taldakus