2017-06-08 4 views
0

Nach der Anmeldung in über Google Kombinieren und Protokollierung der von dem FirebaseAuth Benutzer gezogen Daten, das ist, wie Firebase Sie ein Benutzerkontoinformation ziehen hat:FirebaseAuth Userinfo von ProviderData in einen umfassenden Benutzer

die Profilinformationen zu erhalten die von den Anmeldungsanbietern abgerufen werden, die mit einem Benutzer verknüpft sind, verwenden Sie die Methode "getProviderData".

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 
if (user != null) { 
    for (UserInfo profile : user.getProviderData()) { 
     // Id of the provider (ex: google.com) 
     String providerId = profile.getProviderId(); 

    // UID specific to the provider 
    String uid = profile.getUid(); 

    // Name, email address, and profile photo Url 
    String name = profile.getDisplayName(); 
    String email = profile.getEmail(); 
    Uri photoUrl = profile.getPhotoUrl(); 
    }; 
} 

Wenn ich dich anmelden, um Informationen von jedem profile zog ich die folgenden paar unvollständige Datensätze erhalten:

06-08 12:48:12.851 14400-14400/com.example.app D/MainActivity: providerId: firebase, uid: 1***************2, name: null, email: d**********[email protected], url: null 
06-08 12:48:12.851 14400-14400/com.example.app D/MainActivity: providerId: google.com, uid: 1************5, name: D*******y, email: null, url: https://lh4.googleusercontent.com/.../photo.jpg 

Gibt es eine Standardmittel von Benutzerinformationen kombiniert und als zugänglicher Speicherung Datensatz? FirebaseAuth (zumindest in diesem Beispiel) scheint nicht die sauberste Möglichkeit zu sein, Benutzerinformationen zur Laufzeit abzurufen.

Antwort

1

Es gibt keine andere Möglichkeit, providerData für einen currentUser zu erhalten. Ich nehme an, Sie bevorzugen es, Daten nach einem Schlüssel wie ProviderId zu suchen, anstatt diese Liste zu durchlaufen. Sie können diese Daten immer in der Echtzeitdatenbank mit einer von Ihnen bevorzugten Struktur wie einer Schlüssel/Wert-Zuordnung duplizieren.

Verwandte Themen