我有Facebook登录页面(我正在使用Firebase Auth),当我在我的设备上运行我的应用程序并点击登录按钮时,我收到错误消息:
此应用程序运行的环境不支持此操作。 “location.protocol”必须是http或https,并且必须启用网络存储。
,错误代码为:
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 :(得分:1)
正如Channing所说,目前Cordova不支持此功能。 您需要使用Cordova插件进行Facebook登录。 成功后,您将获得OAuth 2访问令牌或ID令牌。 然后,您使用web sdk初始化auth凭证并调用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