generator-chek-ms
Version:
boilerplate de creación de microservicios en Chek
42 lines (37 loc) • 1.12 kB
text/typescript
import { EnvironmentService } from '@core/environment';
import {
Injectable,
OnModuleInit,
Logger,
InternalServerErrorException,
} from '@nestjs/common';
import * as adminFirebase from 'firebase-admin';
()
export class FirebaseService implements OnModuleInit {
constructor(
private readonly environmentService: EnvironmentService,
private readonly logger: Logger,
) {}
private admin: adminFirebase.app.App;
onModuleInit() {
if (this.environmentService.getEnvironmentValue('FIREBASE_CREDENTIALS')) {
const firebaseCredentials = JSON.parse(
this.environmentService.getEnvironmentValue('FIREBASE_CREDENTIALS'),
);
try {
this.admin = adminFirebase.initializeApp({
credential: adminFirebase.credential.cert(firebaseCredentials),
});
} catch (error) {
this.logger.error(
`[${FirebaseService.name}: ${this.onModuleInit.name}] ${error.message}`,
error.stack,
);
throw new InternalServerErrorException(error.message);
}
}
}
getAdmin() {
return this.admin;
}
}