0

我已(我与火力地堡验证工作),当我在我的设备上运行我的应用程序,然后点击登录按钮,我得到错误信息登录页面与Facebook:离子火力Facebook的身份验证

此操作在运行此应用程序的环境中不受支持。 “location.protocol”必须是http或https,并且必须启用Web存储。

和错误代码是:

auth/operation-not-supported-in-this-environment 

如果我在谷歌浏览器上运行这个程序,它的伟大的工作。哪里有问题?

感谢。

登录代码:

var provider = new firebase.auth.FacebookAuthProvider(); 
    firebase.auth().signInWithPopup(provider).then(function(result) { 
     // This gives you a Facebook Access Token. You can use it to access the Facebook API. 
     var token = result.credential.accessToken; 
     // The signed-in user info. 
     var user = result.user; 
     console.log(user); 
     // ... 
    }).catch(function(error) { 
     // Handle Errors here. 

     var errorCode = error.code; 
     var errorMessage = error.message; 
    console.log(errorMessage); 
    console.log(errorCode); 
     var email = error.email; 
     // The firebase.auth.AuthCredential type that was used. 
     var credential = error.credential; 
     // ... 
    }); 
+0

现在Cordova不支持signInWithPopup。作为解决方法,您可以使用Cordova的Facebook登录库,然后使用访问令牌调用signInWithCredential()。 –

+0

我该怎么做?你有一个exapmle? @ChanningHuang – Ron

回答

1

正如钱宁说,目前这不是在科尔多瓦支持。 您需要使用Cordova插件登录Facebook登录。 成功之后,您将获得一个OAuth 2访问令牌或ID令牌。 然后,您可以初始化一个auth凭证,然后使用Web SDK调用signInWithCredential:

firebase.auth().signInWithCredential(firebase.auth.FacebookAuthProvider.credential(fbAccessToken)).then(function(user) { 
 
    // The facebook user is now signed in. 
 
}).catch(function(error) { 
 
    // Some error happened! 
 
});

为了得到FB访问令牌,可以使用例如下面的插件,我发现:https://github.com/Wizcorp/phonegap-facebook-plugin

+0

我可以得到acces令牌,但承诺似乎没有工作。没有解决也没有发现任何错误。不知道如何调试,因为这是在模拟器中运行。不管怎么说,还是要谢谢你。 –

+0

好吧,最后我发现了android sdk中的'monitor'来调试模拟器。这个错误非常愚蠢,我没有在组件中导入Firebase。 Monitor向我展示了一些参考错误firebase ...无论如何,你的回答非常有用,并且是发现许多事情的关键。非常感谢。 –