2015-01-09 21 views
5

以下は、Popup/Newタブを開く/ Chrome 39.0.2171.50 iOS 8.1.2(12B440)、 の場合は何もしませんが、Safariでは同じデバイス:

<button ng-click="$auth.$authWithOAuthPopup('facebook')">Login with Facebook</button> 

参照くださいplnkr:http://plnkr.co/edit/Ejd7fsyTHf6Ohn0F25Wy?p=preview

これはクロームまたはFirebase/AngularFireのバグですか、私は間違って何かをやっていますか?

私はhereから見ると、これはChromeの問題である可能性がありますが、$authWithOAuthRedirect()を動作させることはできません。参照:http://plnkr.co/edit/9dd0W8X5k33LFBcCLmzs?p=preview

両方ポップアップとデスクトップChromeで作業をリダイレクト39.0.2171.95

+1

私はヨセミテのSafariと同じ問題を抱えていました。 $ authWithOAuthRedirectを使用して終了しました。 – webduvet

答えて

4

Firebaseは、ポップアップは、すべてのプラットフォームですサポートしていません。サポートされていないプラットフォームが検出された場合、authWithOAuthPopup()メソッドはコードTRANSPORT_UNAVAILABLEでエラーを返し、ブラウザのリダイレクトなどの別のトランスポートで認証を試みる必要があることを示します。

+0

十分に公正です。それはどこかのドキュメントにありますか?特に、ブラウザによってはこれが失敗する原因を知っていますか? –

+1

@MurraySmith残念ながら、それは十分に文書化されていませんが、[Error Listing](https://www.firebase.com/docs/web/guide/user-auth)のようなFirebaseのドキュメントのいくつかの場所に表示されます。 html)。 –

+3

残念ながら、一部のブラウザではこのトランスポートに必要な機能がサポートされていません。 PhoneGap/Cordova/Ionicでは 'window.open'を使うためにシム(InAppBrowserプラグイン)が必要です。 Chromeは、歴史的に安全なcross-frame postMessageと組み合わせて 'window.open(...) 'のための信頼できるトランスポートを持っていないため、iOSでも同様に無効になっています。同様に、ブラウザを外部の公共のインターネットURLからPhoneGapアプリケーションがロードされているローカルのファイルシステムにリダイレクトするメカニズムがないため、PhoneGap/Cordovaのアプリケーションではリダイレクトは使用できません。 –

2

IOSのIAMのはわからないが、あなたがイオンとfirebaseと一緒にAndroidデバイスを使用する場合、問題を解決するには、次のコマンドを実行します。

ionic plugin add cordova-plugin-inappbrowser 
関連する問題