新的firebase更新:Google Auth的弹出窗口不会显示在Ionic中

时间:2016-05-27 11:01:53

标签: ionic-framework firebase ionic2 firebase-authentication

我最近更新到几天前刚刚推出的新火力架。由于它没有Cordova / Ionic特殊页面,我认为我需要使用一个用于Web。我设置了一切,但signInWithPopup功能在实际的手机设备上不起作用。它在Web浏览器中工作正常。我之前的版本已经列入了以前版本的火力列表,所有内容都适用于以前的版本。有没有人有任何想法?任何帮助都值得赞赏!

firebase.auth().signInWithPopup(provider).then(function(result) {
 // This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
//  ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});

以下是我的内容安全政策

<meta http-equiv="Content-Security-Policy" content=" img-src &apos;self&apos; data:
                                                                                     http://*.google.com
                       http://*.gstatic.com
                       http://*.googleapis.com
                       http://*.firebaseio.com
                       https://*.google.com
                       https://*.gstatic.com
                       https://*.googleapis.com
                       https://*.firebaseio.com

最后,我允许对我的config.xml中的所有内容进行导航

        <allow-navigation href="*" />

3 个答案:

答案 0 :(得分:0)

目前Firebaseu V3 auth的signInWithPopup / Redirect在cordova应用程序中不起作用。

答案 1 :(得分:0)

弹出和重定向在移动设备上无效。您可能需要使用cordovaOauth或任何其他第三方来获取访问令牌,然后使用signInWithCredential()对用户进行身份验证并获取firebase用户数据。

这是一个很好的例子: http://www.clearlyinnovative.com/firebase-3-0-ionic-facebook-login

答案 2 :(得分:0)

在我的 Ionic2 RC1 + Firebase3.5 + AngularFire2.beta5 项目中,我遇到了同样的问题...使用Popup的Google Auth在浏览器中工作但在我的Android中没有.APK

首先,我将 192.168.1.172 添加到我的Firebase Console授权域列表,将{{1}}添加到我的 config.xml

在此之后,我发现 installing Cordova InAppBrowser 插件最终解决了我的问题。

我不需要修改我的代码,只需要即插即用,就像David East在Social login with Ionic blog中所说的那样。