我正在使用Firebase身份验证Web SDK,这是我的代码:
<!doctype html>
<html>
<head>
<meta charset='utf-8' />
<!-- Firebase -->
<script src="https://www.gstatic.com/firebasejs/7.4.0/firebase.js"></script>
</head>
<body>
<button onclick="googleSignin()">Google Signin</button>
<button onclick="googleSignout()">Google Signout</button>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "someapikey",
authDomain: "something.firebaseapp.com",
databaseURL: "https://something.firebaseio.com",
projectId: "something",
storageBucket: "something.appspot.com",
messagingSenderId: "123123123",
appId: "1:106574789123:web:f8afd31e97bdb418cc2345"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
var provider = new firebase.auth.GoogleAuthProvider();
function googleSignin() {
firebase.auth()
.signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
var user = result.user;
console.log(token)
console.log(user)
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(error)
console.log(error.message)
});
}
function googleSignout() {
firebase.auth().signOut()
.then(function() {
console.log('Signout Succesfull')
}, function(error) {
console.log('Signout Failed')
});
}
</script>
</body>
</html>
上面的代码只是在单击Google登录按钮时打开一个弹出窗口,该弹出窗口突然消失并在控制台中显示此错误:
{
code: "auth/network-request-failed"
message: "A network error (such as timeout, interrupted connection or unreachable host) has occurred."
}
我搜索了此错误并尝试了各种解决方案,但没有任何效果。我的Google登录从Firebase控制台启用,并且该域(run.plnkr.co)已添加到允许的域列表中。
还尝试将type="button"
添加到按钮上,但仍然没有用。然后尝试onclick="googleSignin(): return false"
。结果也一样。
我的网络很好,firebase匿名登录也很好。
Here是我为其创建的plunkr的链接。您只需要用here所示的firebase凭证替换即可。
编辑:
我为此使用了chrome,但它不起作用。但是在Firefox上它可以工作。根据{{3}},回答由于CORS问题。但是我在文档中找不到任何提及的地方。我在做其他错误的事吗?