世博会:“认可/运营 - 不支持这个环境”

时间:2018-04-22 12:52:40

标签: javascript firebase react-native firebase-authentication expo

我开发了一个react-native(expo)移动应用,尝试使用google帐户登录firebase,但是我收到了错误消息:

  

“auth / operation-not-supported-in-this-enviroment。此应用程序运行的环境不支持此操作。”location.protocol“必须是http,https或chrome-extension和web存储必须启用“

代码:

loginGoogle() {
    var provider = new firebase.auth.GoogleAuthProvider();
    provider.addScope('profile');
    provider.addScope('email');
    firebase.auth().signInWithPopup(provider).then(function(result) {
        var token = result.credential.accessToken;
        var user = result.user;
        return true;
    }).catch(function(error) {
        alert(error.code + '\n' +
        error.message + '\n' +
        error.email + '\n' +
        error.credential);
        return false;
    });
}

2 个答案:

答案 0 :(得分:1)

Firebase 在 React Native 环境中不支持 signInWithPopup

您可以在 this page 上查看受支持环境的完整列表。

您还可以提交功能请求,以获得对 React Native here 的扩展 Firebase 支持。

答案 1 :(得分:0)

react-native不支持

signInWithPopup。您需要使用第三方OAuth库来获取OAuth ID令牌或访问令牌,然后使用Firebase登录:

const cred = firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken);
firebase.auth().signInWithCredential(cred)
  .then((result) => {
    // User signed in.
  })
  .catch((error) => {
    // Error occurred.
  });