2016-05-21 7 views
10

Ich entwickle eine iOS-App mit Ionic Framework und Firebase. Ich habe das Firebase SDK in meinem Projekt auf Version 3.x aktualisiert. Was ich versuche ist, den Benutzer mit Facebook auf einem echten Gerät zu authentifizieren. Alles funktioniert gut, wenn ich es in einem Browser teste. Wenn ich jedoch auf einem echten iOS-Gerät laufe, erhalte ich immer den folgenden Fehler:Ionic Framework und Firebase 3.x-Version: Diese Domäne ist nicht für OAuth-Vorgänge für Ihr Firebase-Projekt zugelassen

Diese Domäne ist nicht für OAuth-Vorgänge für Ihr Firebase-Projekt autorisiert. Bearbeiten Sie die Liste der autorisierten Domänen über die Firebase-Konsole.

Auf Firebase habe ich bereits "localhost" und "127.0.0.1" zu meiner autorisierten Domain-Liste hinzugefügt. Ich bin mir also nicht sicher, was ich jetzt tun soll.

Zu Ihrer Information verwende ich WKWebView nicht in meinem Projekt.

Kann mir hier jemand sagen, wie ich das lösen kann? Bitte um Rat.

+0

Ich denke, wir sollten die Domain der App im Abschnitt "OAuth Redirect Domains" in Firebase hinzufügen, aber ich weiß nicht, welche Domain der App auf einem Gerät ausgeführt wird. - document.location.host und window.location.host sind leer –

+0

Sie müssen alles aktualisieren, indem Sie diese [Anweisungen] (https://firebase.google.com/support/guides/firebase-web#import_your_project_to_the_firebase_console_numbered) von der Firebase befolgen Doc! [Danksagungen] (https://forum.ionicframework.com/t/ionic-framework-and-firebase-v3-auth-error-this-domain-ist-nicht-authorisiert-auto-arbeiten-fur-ihre- Firebase-Projekt/52764) –

+0

Mit dem gleichen Problem in React-native auf Android oder iOs Plateform. –

Antwort

11

Der Fehler "This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console." verhindert nur signInWithPopup()signInWithRedirect()linkWithPopup() und linkWithRedirect() Operationen von der Arbeit. Jede andere Funktion, einschließlich signInWithCredential(), sollte funktionieren.

Ich glaube, dass Sie diesen Fehler sehen, weil ionische Anwendungen keine echte Domäne haben, und dies ist eine Voraussetzung für die 4 Funktionen, die ich oben erwähnt habe.

Die Lösung für Ihr Problem wäre, den Fehler zu ignorieren (es ist nur informativ) und nicht signInWithPopupsignInWithRedirectlinkWithPopup oder linkWithRedirect verwenden. Verwenden Sie stattdessen eine Bibliothek für OAuth wie ngCordovaOAuth, und verwenden Sie dann auth().signInWithCredential(...) (siehe Beispielanweisungen für Twitter here).

+1

Sie haben Recht, das funktioniert. ich ein Plugin lieber mit einer nativen Login wie cordova-plugin-facebook4 oder Twitter-connect-Plugin aufzurufen. Es wäre toll, eine Abhilfe zu haben Firebase des v3-Login zu verwenden ohne Plugins zu installieren –

+1

Froh, es hat funktioniert!Und das ist definitiv eine sehr interessante Feature-Anfrage, die ich an das Team weiterleiten werde. – alfongj

+0

Ja, das funktioniert. Vielen Dank alfongj. Ich habe auch eine E-Mail gesendet, um Firebase nach diesem Problem zu fragen, und sie schlagen auch vor, eine Oauth-Bibliothek zu verwenden und dann signInWithCredential() zu verwenden. Zu Ihrer Information wurde eine Feature-Anfrage zu diesem Problem gesendet. =) – chanat

0

Ich habe das gleiche Problem, aber ich habe es gelöst, indem ich ein neues Firebase-Projekt erstellt habe.

+1

Ich habe Ihre Methode versucht, aber kein Glück bekommen. Ich verwende Ionic v.1.7.14 und Firebase 3.x. Beim Aufruf von firebase.auth(). SignInWithPopup (Anbieter) unter iOS wird ein neuer Popup angezeigt, der sofort verschwindet. = ( – chanat

0

Ok, hier ist meine vorübergehende Lösung:

ich importieren sowohl Firebase SDK v.2.x und Firebase SDK 3.x in meinem ionischen Projekt. Ich benutze Version 2.x für die Facebook-Authentifizierung auf iOS, dann benutze ich Version 3.x, um Zugriff auf alle neuen Funktionen in Firebase wie Storage und so weiter zu bekommen.

Hoffnungen das hilft.

Verwandte Themen