Firebase Anmeldung mit neuem Provider (Google) entfernt bisherigen Provider (Passwort)

8

Ich mache eine Anmeldung mit Firebase (v3) Auth und ich habe dieses Problem:

  1. Der Nutzer meldet sich zunächst mit E-Mail und Passwort an.
  2. Abmelden.
  3. Melden Sie sich später mit Google an.

Ich würde einen Fehler erwarten, der beschwert, dass die E-Mail-Adresse für ein anderes Konto verwendet wird, und dann den Benutzer bitten, das Kennwort einzugeben, um die Konten zu verknüpfen. Stattdessen entfernt Firebase jedoch die Anmeldemethode für E-Mail / Kennwort und kehrt zurück eine Erfolgsmeldung.

Code für die Authentifizierung mit Google:

%Vor%

Code für die Authentifizierung mit E-Mail und Passwort:

%Vor%

Ich sehe im Leitfaden , dass die Kontoverknüpfung erfolgt, indem zuerst ein Nutzer mit einem Konto angemeldet wird ihre aktuelle Provider / Methode und nur dann fragen nach Anmeldeinformationen / Token für die neue Authentifizierungsmethode / Provider zu erhalten. In meinem Fall weiß ich nicht, ob sie andere Authentifizierungsanbieter zu spät haben (Firebase überschreibt sie).

Gibt es eine Möglichkeit, festzustellen, dass die E-Mail bereits vergeben ist, bevor Firebase die Details des bereits vorhandenen Kontos überschreibt und den Benutzer auffordert, sein Passwort einzugeben und die Konten zu verknüpfen? Oder, noch besser, die Konten automatisch verknüpfen, wenn sie sich bei Google angemeldet haben und die E-Mail-Adressen übereinstimmen?

    
Vlad V 23.05.2016, 16:35
quelle

1 Antwort

6

Ich habe es herausgefunden. Firebase verhält sich wie es sollte und dies war kein technisches / codierendes Problem. Es ist eher eine Dokumentationsproblematik.

Wenn sich ein Benutzer mit E-Mail und Passwort anmeldet, abmeldet und sich mit einer anderen Methode anmeldet (die vorher nicht verwendet wurde), können zwei Dinge passieren:

  1. Wenn die E-Mail bestätigt wurde, werden die E-Mail- / Passwort-Anmeldedaten bei der Anmeldung bei einem neuen Anbieter gespeichert (das gewünschte Ergebnis in meiner Frage).

oder

  1. Wenn die E-Mail unbestätigt ist, wird der Benutzer so aktualisiert, dass die E-Mail- / Passwort-Anmeldeinformationen entfernt werden und die neue Anmeldemethode beibehalten wird. Benutzerdetails wie displayName werden nicht automatisch aktualisiert.
Vlad V 23.05.2016, 17:16
quelle