我创建了一个基于Angular2 / TypeScript的Firebase SPA应用。我在Firebase控制台中激活了Google Auth,将localhost:4200添加到Google控制台中的授权JavaScript来源(此记录由Firebase自动创建)并调用以下代码:
import * as firebase from 'firebase/app';
import 'firebase/auth';
let prov = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(prov)
.then(user => {
console.log(user);
})
.catch(error => {
console.log(error);
debugger;
});
但我每次都会收到auth / network-request-failed。看起来我错过了设置一些设置但找不到哪个。几个月前,我做了类似的实验,但除了这次我做了之外并没有什么特别的要求。我注意到这可能发生在Chrome上,但在我的情况下,它可以在Firefox和IE上进行重新编译。
更新 我在浏览器中检查了服务器响应:它取消了请求,并出现以下错误:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "ipRefererBlocked",
"message": "The request did not specify any referer. Please ensure that the client is sending referer or use the API Console to remove the referer restrictions.",
"extendedHelp": "https://console.developers.google.com/apis/credentials?project=<project id>"
}
],
"code": 403,
"message": "The request did not specify any referer. Please ensure that the client is sending referer or use the API Console to remove the referer restrictions."
}
}
然后我删除了Firebase创建的所有密钥并重新创建它们。将localhost和firebase主机引用放在那里 - 同样的事情。
更新即可。这不是Firebase问题,但更像是Angular集成:我创建了一个简单的Angular2项目,重复相同的操作,但没有像第一个地方那样的Angular服务,问题就消失了。现在我尝试重现以找到发生的事情。如果我找到任何内容,将更新此帖子。