2016-07-20 8 views
2

Ich bin mit Firebase Authentication with Email and PasswordFirebase-Authentifizierung: Sucht einen Benutzer per E-Mail

Ich würde gerne wissen, ob ich kann ‚Lookup‘ ein Benutzer per E-Mail nur während auch nicht als Benutzer angemeldet ist

Der Grund ich möchte dies tun, ist einfach zu identifizieren, wenn ich bereits ein Benutzer des Systems, eine E-Mail-Adresse nur

ich this older thread aussah, aber es scheint, die vorherige Version von Firebase

zu sein Ist es möglich, th zu tun? ist in der aktuellen Firebase, oder meine Alternative wäre, diese Informationen verfügbar zu halten (und offen für alle?), um herauszufinden, ob eine bestimmte E-Mail Teil meines Systems ist?

+0

Es gibt keine eingebaute API in Firebase Authentifizierung eines Benutzers durch ihre E-Mail-Adresse zu suchen. Der gängige Ansatz von Entwicklern besteht darin, dies zu lösen, indem die benötigten Informationen in der Firebase-Datenbank wie in dem von Ihnen verknüpften Thread modelliert werden. –

+0

Danke! Wenn ich einen Knoten von Benutzer-E-Mail-Adressen verwalte, um einfach ein Boolesches Wahr oder Falsch für die Existenz zu erhalten, wie schütze ich das davor, von niemandem gelesen zu werden (öffentlich/weltweit)? – wrecktangle

+0

Sie können das Nachschlagen einer einzelnen E-Mail-Adresse nicht verhindern, da dies genau der Anwendungsfall ist, den Sie implementieren möchten. Aber Sie können die Liste unlesbar machen und nur jede einzelne E-Mail-Adresse lesen, um die Exposition zu minimieren. –

Antwort

2

Die neue Methode zum Erstellen von Benutzern mit E-Mail-Kennwort gibt einen Wert zurück, ob die angegebene E-Mail-Adresse bereits verwendet wird. Siehe here

+0

Yup das ist genau das, was ich brauchte! Vielen Dank! – wrecktangle

4

Ich benutze fetchProvidersForEmail (email) und wenn das Ergebnis als leeres Array zurück, dann wurde diese E-Mail nicht verwendet, um sich anzumelden.

firebase.auth().fetchProvidersForEmail(email) 
 
.then(providers => { 
 
    if (providers.length === 0) { 
 
    // this email hasn't signed up yet 
 
    } else { 
 
    // has signed up 
 
    } 
 
});