在我的Android手机上测试期间尝试登录我的网络应用时,收到此消息:
“firebase.js:75未捕获错误:此应用程序运行的环境不支持此操作。”location.protocol“必须为http或https ..”
我将我的firebase网址添加到我的fb应用上的有效OAuth重定向URI - https://.firebaseio.com/我在auth部分将我的应用ID和名称添加到了firebase。我错过了什么吗?感谢
我在这里使用chrome远程调试:file:///android_asset/www/index.html#/app/people
这可能是为什么它会大惊小怪?
var provider = new firebase.auth.FacebookAuthProvider();
console.log(provider);
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Facebook Access Token. You can use it to access theFacebook API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
console.log(user, token);
UserService.setUser(user, token);
// ...
}).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;
console.log(errorCode);
});
答案 0 :(得分:3)
找到了一个关于Facebook登录的解决方案,它适用于Ionic 1,并且原则上也适用于Ionic 2.
添加Cordova插件cordova-plugin-facebook4 在auth代码中,我添加了以下内容:
if ((window.cordova && device.platform == 'iOS') || (window.cordova && device.platform == 'Android')) {
facebookConnectPlugin.login(['public_profile'], function(result) {
provider = firebase.auth.FacebookAuthProvider.credential(result.authResponse.accessToken);
Auth.$signInWithCredential(provider).then(function(authData) {
// User successfully logged in
}).catch(function(error) {
// Login error
});
}, function(error) {
// Login error
});
} else {
provider = new firebase.auth.FacebookAuthProvider();
Auth.$signInWithPopup(provider).then(function(authData) {
// User successfully logged in
}).catch(function(error) {
// Login error
});
}
基本上,这将确保在设备上使用Facebook登录SDK,而在浏览器中运行时将使用Firebase signInWithPopup
答案 1 :(得分:1)
以下操作:signInWithPopup,signInWithRedirect,linkWithPopup,linkWithRedirect和getRedirectResult仅支持来自http / https环境。您可以使用文件环境中剩余的apis。