繁体   English   中英

Angular 13:命名空间“/node_modules/firebase/compat/index”没有导出成员“用户”。 ts(2694)

[英]Angular 13: Namespace '"/node_modules/firebase/compat/index"' has no exported member 'User'. ts(2694)

第一个错误:

Namespace '"D:/desktop/Programming/oauthAngular/node_modules/firebase/compat/index"' has no exported member 'User'.

第二个错误:

Type 'import("D:/desktop/Programming/oauthAngular/node_modules/rxjs/dist/types/internal/Observable").Observable<firebase.default.auth.UserCredential>' is not assignable to type 'import("D:/desktop/Programming/oauthAngular/node_modules/rxjs/dist/types/internal/Observable").Observable<import("D:/desktop/Programming/oauthAngular/node_modules/@firebase/auth/dist/auth-public").UserCredential>'.
  Property 'providerId' is missing in type 'firebase.default.auth.UserCredential' but required in type 'import("D:/desktop/Programming/oauthAngular/node_modules/@firebase/auth/dist/auth-public").UserCredential'.

这是我的auth.service.ts里面的内容

import { AngularFireAuth } from '@angular/fire/compat/auth';
import * as auth from 'firebase/auth';
import { BehaviorSubject, Observable, from } from 'rxjs';
import { Injectable } from '@angular/core';
import { switchMap } from 'rxjs/operators';
import * as firebase from 'firebase/app';


@Injectable({
  providedIn: 'root',
})
export class AuthService {
  private user: BehaviorSubject<
    Observable<firebase.User>
  > = new BehaviorSubject<Observable<firebase.User>>(null);
  user$ = this.user
    .asObservable()
    .pipe(switchMap((user: Observable<firebase.User>) => user));

  constructor(private afAuth: AngularFireAuth) {
    this.user.next(this.afAuth.authState);
  }

  loginViaGoogle(): Observable<auth.UserCredential> {
    return from(this.afAuth.signInWithPopup(new auth.GoogleAuthProvider()));
  }

  logout(): Observable<void> {
    return from(this.afAuth.signOut());
  }
}

你能帮我解决我的 Angular 代码中的错误吗? 我试图将它连接到 Firebase 以便我能够使用 OAuth? 谢谢你。

此错误可能来自混合两个类似的库。

尝试import * as auth from 'firebase/auth'; 而是从正确的库中导入 UserCredential。

import { UserCredential } from "@angular/fire/auth";
//import { UserCredential } from "firebase/auth";

我遇到了和你一样的问题,看到你的主题在这里打开帮助我解决了这个问题,在此先感谢。 查看您的导入,我看到您使用了:

import * as firebase from 'firebase/app';

正确的是

import * as firebase from 'firebase/auth';

希望对你有帮助,抱抱!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM