Невозможно прочитать свойство FacebookAuthProvider из undefined

Я пытаюсь использовать angular firebase и подключиться к facebook, но я получил эту ошибку:

AppComponent.html:2 ERROR TypeError: Cannot read property 'FacebookAuthProvider' of undefined
at AuthService.signInWithFacebook (auth.service.ts:26)
at AppComponent.signInWithFacebook (app.component.ts:20)
at Object.eval [as handleEvent] (AppComponent.html:2)
at handleEvent (core.js:13589)
at callWithDebugContext (core.js:15098)
at Object.debugHandleEvent [as handleEvent] (core.js:14685)
at dispatchEvent (core.js:10004)
at eval (core.js:10629)
at HTMLButtonElement.eval (platform-browser.js:2628)
at ZoneDelegate.invokeTask (zone.js:421)

Я попытался изменить версию firebase и зависимости, но пока ничего не работает.

зависимости:

"angularfire2": "^5.0.0-rc.6.0",
    "core-js": "^2.4.1",
    "firebase": "4.13.1",
    "rxjs": "^5.5.6",
    "zone.js": "^0.8.19",
    "@firebase/app": "^0.1.10"

auth.service.ts:

import { Injectable } from '@angular/core';
import { Router } from "@angular/router";
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class AuthService {
  private user: Observable<firebase.User>;
  private userDetails: firebase.User = null;
constructor(private _firebaseAuth: AngularFireAuth, private router: Router) { 
      this.user = _firebaseAuth.authState;
this.user.subscribe(
        (user) => {
          if (user) {
            this.userDetails = user;
            console.info(this.userDetails);
          }
          else {
            this.userDetails = null;
          }
        }
      );
  }
signInWithFacebook() {
    return this._firebaseAuth.auth.signInWithPopup(
      new firebase.auth.FacebookAuthProvider()
    )
  }

что я делаю в ношении? Благодарность

Такая же ошибка возникает с последней стабильной версией на AngularFire2? Похоже, это ошибка RC. Где находится код в auth.service.ts, который вызывает новый FacebookAuthProvider? См. как спросить и создание mcve.

Kato 24.04.2018 00:39
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
1
1 177
2

Ответы 2

Что сработало для меня, так это изменение оператора импорта в моем home.ts:

import firebase from 'firebase';

Ответы должны быть на английском языке meta.stackexchange.com/questions/13676/…. Я попробовал перевести ваш ответ на английский. Имейте в виду, что существует также переполнение стека для испанского языка es.stackoverflow.com

flen 18.05.2018 00:21

Что, если им интересно, потому что они не переводят? удача

Edwin Anaya 18.05.2018 17:44

Это проблема, я думаю, что решение всегда использовать английский язык в этом переполнении стека заключается в том, что другие пользователи должны иметь возможность прочитать ваш ответ. Если вдруг вопросы будут на китайском, ответы на испанском и комментарии на русском, никто не поймет, и качество может упасть или люди могут уйти. Suerte;) а точнее, с уважением!

flen 19.05.2018 07:08

Вам не хватает @ в импорте.

import { firebase } from `@firebase/app'

Другие вопросы по теме