2017-01-18 3 views
2

Ich benutze Firebase (angularfire) und Facebook Login in meiner APP, um meine Benutzer zu authentifizieren. Heute habe ich jedoch festgestellt, dass die Profilbild-URL abgelaufen ist, aber das Firebase SDK aktualisiert sie nicht.Firebase Facebook Login Foto URL Signatur abgelaufen

Gibt es eine Möglichkeit, dies zu lösen, oder soll ich das Bild über die Facebook-API anfordern?

+0

Sie dies für Facebook Auth verwenden können (vielleicht auf Benutzer anmelden?): Https : //stackoverflow.com/a/41077436/1537413 – Dika

Antwort

1

Firebase nur aktualisiert diese Daten nach der Sie sich mit einem Anbieter anmelden:

  1. Benutzer Zeichen mit Facebook. Facebook-Provider-Daten gefüllt.
  2. Benutzer aktualisiert ihr Facebook photoURL.
  3. Der Benutzer meldet sich erneut mit Facebook an, die photoURL für den Facebook-Anbieter wird aktualisiert.

Anmeldung ist hier der Schlüssel. Beim erneuten Laden eines Benutzers werden die Benutzereigenschaften nicht aktualisiert.

Die Top-Ebene displayName und photoURL werden jedoch nicht aktualisiert. Sie müssen dies manuell mit der entsprechenden API tun.

Wenn dies für Ihre Bedürfnisse nicht gut genug ist, sollten Sie die Facebook-API verwenden.

+0

ok, ich verstehe, dass das Top-Level-Foto eingestellt ist. aber nicht aktualisiert, wenn Sie sich also mit Facebook anmelden und sich dann erneut mit G ++ einloggen, werden Sie immer noch versuchen, die Facebook-URL zu erhalten. Es scheint, als müsste hier eine Lösung gefunden werden. –

7

Ich löste dies durch die photoURL verwenden, die innerhalb gefunden werden kann: user.providerData[0].photoURL Wo user die Benutzerdaten auf

zurück
firebase.auth().onAuthStateChanged(user => {}) 

Und [0] ist der Index des Authentifizierungsanbieter von Interesse. In meinem Fall nur die Authentifizierung Facebook Ich habe, also der Index 0.

Es scheint, dass diese URL irgendwie wird aktualisiert ...

Verwandte Themen