2016-10-18 3 views
1

Ich muss feststellen, welche Auth Provider/Provider Benutzer derzeit mit einer bestimmten E-Mail angemeldet sind. Es wird sehr schön sein, wenn mir jemand die komplette Methode für fb, google, twitter, github und email zur Verfügung stellt.Deteline-Auth-Provider in fetchProvidersForEmail() in Firebase

Ich kann nirgendwo im Internet oder Firebase Docs den richtigen Code finden, um es zu bestimmen. Das ist mein Code, wenn es von irgendeiner Hilfe guyz ist.

mAuth.fetchProvidersForEmail(email[0]).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() { 
    @Override 
    public void onComplete(@NonNull Task<ProviderQueryResult> task) { 
     if (task.isSuccessful()) { 

      //What to do ??             } 
    } 
}); 

Vielen Dank im Voraus.

Antwort

1

Innen onComplete() können Sie task.getResult() zurückrufen ProviderQueryResult zu erhalten, die die Liste enthält von Auth-Providern, die von diesem Benutzer verwendet werden.

+0

Ja, es hat funktioniert, danke –

+0

Beachten Sie, dass 'task.getResult()' gibt 'List ' zurück und nicht 'String []' –

0

Wenn der Benutzer in dem Sie angemeldet ist, kann den folgenden Code verwenden, um die Provider zu bekommen:

FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); 
String providerId = firebaseUser.getProviderData().get(1).getProviderId(); 
+0

Benutzer ist nicht angemeldet, ich muss prüfen, ob der Benutzer bereits in der Firebase db existiert und ob dies der Fall ist. –