'Angular 13: Namespace '"/node_modules/firebase/compat/index"' has no exported member 'User'. ts(2694)
1st error:
Namespace '"D:/desktop/Programming/oauthAngular/node_modules/firebase/compat/index"' has no exported member 'User'.
2nd error:
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'.
Here is what is inside my 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());
}
}
Can you help me with the errors in my Angular code. I was trying to connect it to Firebase for me to be able to use OAuth? Thank you.
Solution 1:[1]
This error could be from mixing two similar libraries.
Try removing import * as auth from 'firebase/auth';
instead import UserCredential from the correct library.
import { UserCredential } from "@angular/fire/auth";
//import { UserCredential } from "firebase/auth";
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | intotecho |