Firebase 身份验证使用 angularfire2 返回 400

Firebase authentication returning 400 with angularfire2

我在控制台中通过 Google 启用了身份验证:

登录码:

import { Component, OnInit } from '@angular/core';
import { AngularFire, AuthProviders } from 'angularfire2';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
  user = {};
  constructor(public af: AngularFire) {
    this.af.auth.subscribe(user => {
      if(user) {
        // user logged in
        this.user = user;
      }
      else {
        // user not logged in
        this.user = {};
      }
    });
  }

  login() {
    this.af.auth.login({
      provider: AuthProviders.Google
    });
  }

  ngOnInit() {
  }

}

调用 this.af.auth.login() 产生以下错误。

www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIzaSyDyJQVTQI-a-eW2iM70RXAcVHKDb0NP1Ek:1 POST 

https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIzaSyDyJQVTQI-a-eW2iM70RXAcVHKDb0NP1Ek 400 ()
core.es5.js:1084ERROR Error: Uncaught (in promise): Error: The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.
    at resolvePromise (zone.js:712) [angular]
    at resolvePromise (zone.js:683) [angular]
    at polyfills.bundle.js:3492:17 [angular]
    at Object.onInvokeTask (core.es5.js:4116) [angular]
    at ZoneDelegate.invokeTask (zone.js:397) [angular]
    at Zone.runTask (zone.js:165) [<root> => angular]
    at drainMicroTaskQueue (zone.js:593) [<root>]
    at XMLHttpRequest.ZoneTask.invoke (zone.js:464) [<root>]

Google 搜索显示当 Firebase SDK 小于 3 时,这是一个问题。我使用的是最新版本的 angularfire2,所以这应该不是问题。

如果您在 angularFire2 中覆盖登录配置,则应同时设置方法和提供程序。尝试登录:

import { AuthMethods, AuthProviders } from 'angularfire2';

  login() {
    this.af.auth.login({
      method: AuthMethods.Redirect,
      provider: AuthProviders.Google
    });
  }