使用firebase auth和facebook

时间:2016-06-11 20:38:15

标签: firebase firebase-authentication facebook-authentication

在我的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);

  });

2 个答案:

答案 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。