Gemäß der documentation werden die Werte für alle Anbieter angegeben, mit Ausnahme der Telefonauthentifizierung. Ich möchte in meiner Datenbank überprüfen, ob sich ein Benutzer sowohl mit der Telefonauthentifizierung als auch mit Facebook authentifiziert hat. Das Schreiben einer Regel als auth.provider === 'facebook'
funktioniert, aber auth.provider === 'phone'
nicht. Logischerweise, wenn der erste funktioniert, sollte der zweite nicht funktionieren, aber was ist, wenn ich sage, dass ich mich beim ersten Mal immer mit den Telefon-Zugangsdaten und den Facebook-Zugangsdaten mit den Zugangsdaten des Telefons anmelde? Auf den Punkt gebracht:Wert von Authentifizierungsanbieter für die Telefonauthentifizierung und Facebook in der Firebase-Datenbank
- Gibt es einen Wert von
auth.provider
für Phone Authentication? Wenn ja, was ist das? - Gibt es eine Möglichkeit zu überprüfen, ob der Benutzer sowohl Facebook als auch Phone als Provider in meiner Datenbank hat? Es ist mir egal, ob der Benutzer sich mit einem von beiden anmeldet. Das einzige, was ich möchte, ist, dass der Benutzer seine Facebook-Anmeldeinformationen mit dem Telefon verknüpft haben sollte.
- Angenommen,
auth.provider
gibt nur den Wert des Anbieters an, der für die Anmeldung verwendet wurde. Warum funktioniertauth.provider === 'facebook'
, wenn ich mich nie bei einem Benutzer mit Facebook anmelde und ihn nur mit den Anmeldedaten des Telefons verknüpfe?
Update:
- Mit etwas Versuch und Irrtum, so scheint es, dass, wenn Telefon-Authentifizierung die einzige Methode verwendet wird, dann
auth.provider
ist eigentlichanonymous
, nichtphone
. - Auch basierend auf bojeil's Antwort,
auth.token.firebase.identities["phone"] !=null
entpuppt sich alstrue
. Zu beachten ist, dass dies nicht in der documentation dokumentiert ist. Zitiert aus der Dokumentation:
firebase.identities: Wörterbuch aller Identitäten, die mit diesem Benutzerkonto zugeordnet sind. Die Schlüssel des Wörterbuchs können Sie eine der folgenden sein: E-Mail, google.com, facebook.com, github.com, twitter.com.
Keine Erwähnung von Telefon hier entweder. Der letzte Tag, an dem die Seite aktualisiert wurde, war 17. Mai 2017. Man kann sich nur vorstellen, wie schäbig die Dokumentation ist, wenn man berücksichtigt, dass das Firebase SDK für Javascript (v4.0.0), das die Unterstützung der Telefon-Authentifizierung beinhaltet, an diesem Tag veröffentlicht wurde (siehe release notes).
Hey Mayank versuchen Sie mit 'auth.token.firebase.sign_in_provider === 'Telefon'' anstelle von 'auth.provider'. Ich werde berichten, dass 'auth.provider' nicht gefüllt ist und die Dokumente bezüglich Token-Daten nicht aktuell sind. – bojeil
'auth.token.firebase.sign_in_provider ===" Telefon "funktioniert. Außerdem funktioniert 'auth.provider ===' anonymous '. Scheint ein Fehler zu sein. –
Ich habe diesbezüglich einen Fehlerbericht eingereicht. Die Verwendung von auth.provider === "anonymous" ist definitiv falsch. Ein anonymer Benutzer wird diese Prüfung bestehen. Sie sollten den vorherigen Scheck verwenden, bis der letztere behoben ist. – bojeil