How do i pass Observable idToken from firebase to ngx-socket-io
socketio.service.ts
import { Injectable } from '@angular/core';
import { CustomSocket } from '../classes/socket.class';
@Injectable({
providedIn: 'root'
})
export class SocketioService {
constructor(private customSocket: CustomSocket) { }
listen(eventName: string) {
return this.customSocket.fromEvent(eventName);
}
}
custom-socket.class.ts
import { Injectable } from '@angular/core';
import { Socket } from 'ngx-socket-io';
import { switchMap } from 'rxjs';
import { AuthService } from '../services/auth.service';
@Injectable()
export class CustomSocket extends Socket {
constructor(
private privateAuthService: AuthService
) {
// i want to add firebase token over here
super({
url: '<url>', options: { }
});
// this.privateAuthService.idToken$.subscribe(idToken => {
// this.ioSocket.auth = { token: `Bearer ${idToken}` };
// });
}
}
auth.service.ts
import { Injectable } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/compat/auth';
@Injectable({
providedIn: 'root',
})
export class AuthService {
constructor(private angularFireAuth: AngularFireAuth) { }
get idToken$() {
return this.angularFireAuth.idToken;
}