import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import * as admin from 'firebase-admin'; @Module({ imports: [ConfigModule], providers: [ { provide: 'FIREBASE_ADMIN', inject: [ConfigService], useFactory: (configService: ConfigService) => { const serviceAccount = { projectId: configService.get('FIREBASE_PROJECT_ID'), clientEmail: configService.get('FIREBASE_CLIENT_EMAIL'), privateKey: configService.get('FIREBASE_PRIVATE_KEY')?.replace(/\\n/g, '\n'), }; if (!admin.apps.length) { admin.initializeApp({ credential: admin.credential.cert(serviceAccount), }); } return admin; }, }, ], exports: ['FIREBASE_ADMIN'], }) export class FirebaseAdminModule {}