我开发了一个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;
});
}
答案 0 :(得分:1)
Firebase 在 React Native 环境中不支持 signInWithPopup
。
您可以在 this page 上查看受支持环境的完整列表。
您还可以提交功能请求,以获得对 React Native here 的扩展 Firebase 支持。
答案 1 :(得分:0)
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.
});