3

Wie kann ich überprüfen, ob mein Benutzer in meine App eingeloggt ist? Mit welchem ​​Auth-Provider? Ich wollte feststellen, dass mein Benutzer sich in meiner App eingeloggt hat, indem er den Facebook-Auth-Provider oder den E-Mail-Provider oder den Google-Auth-Provider verwendet hat. Ich habe das in Firebase Docs gesucht, aber ich konnte keine richtige Antwort finden,Ermitteln des Firebase-Auth-Providers für ausgeloggte Benutzer

Antwort

2

In Firebase kann ein einzelner Benutzer bei mehreren Anbietern angemeldet werden. Wenn Sie anrufen:

FirebaseAuth.getInstance() 
.getCurrentUser().getProviderId() 

Es wird immer Firebase zurückgeben.

Da es nicht mehr das Konzept der einzelnen Anbieter in Feuerbasis ist nicht mehr so ​​zu erkennen, wenn der Benutzer mit Facebook angemeldet sind, werden Sie die Provider-Daten wie diese

for (UserInfo user: 
FirebaseAuth.getInstance(). 
getCurrentUser().getProviderData()) { 
if (user.getProviderId().equals("facebook.com")) { 
System.out.println("User is signed in with Facebook"); 
    } 
} 

Hoffnung, die hilft, überprüfen müssen.

+0

Wenn die Antwort hilfreich war, dann akzeptiere sie, damit sie auch für andere hilfreich sein kann. –

+0

Was ist UserInfo hier? und warum machen wir das in der Schleife? –

+0

UserInfo ist eine Schnittstelle. Dies ist nur für die Apps des Firebase-Projekts sichtbar. Wir machen dies in der Schleife, da wir mehrere Anbieter in Firebase haben. Wir schleifen alles und überprüfen es ist Facebook. –

0

Sie können immer die Liste der Anbieter überprüfen, wie Malik darauf hinwies. Da Sie jedoch mehrere Anbieter mit demselben Benutzer verknüpfen können, müssen Sie das ID-Token überprüfen, um die Anmeldemethode des aktuellen Benutzers mit mehreren Anbietern zu erhalten. Sie müssen firebase.sign_in_provider Anspruch im Token überprüfen. Dadurch erhalten Sie die Anmeldemethode zum Abrufen des ID-Tokens. Um es auf dem Client zu erhalten, müssen Sie IdToken abrufen und dann die zurückgegebene JWT mit einem JWT-Parser analysieren.

Verwandte Themen