This dynamic module was generated with Nest Dynamic Package Generator Schematics. You can read more about using the generator here.
To install this generated project:
npm install @geekbears/gb-nest-firebase
@Module({
imports: [
GbNestFirebaseModule.forRootAsync({
inject: [ConfigService],
useFactory(configService: ConfigService) {
const privateKey = Buffer.from(configService.get<string>('FIREBASE_PRIVATE_KEY'), 'base64').toString(
'utf-8',
);
const credentials: GbNestFirebaseOptions = {
googleApplicationCredential: {
clientEmail: configService.get('FIREBASE_CLIENT_EMAIL'),
privateKey,
projectId: configService.get('FIREBASE_PROJECT_ID'),
},
};
return credentials;
},
}),
],
})
export class AppModule {}
// using in service class
export class Service {
constructor(
@InjectFirebaseAdmin() private readonly firebase: FirebaseAdmin,
) {}
}
If you selected yes
for the question Generate a testing client?
, a small testing module was automatically generated
called GbNestFirebaseClientModule. You can test that the template was properly generated by running
npm run start:dev
Then connect to http://localhost:3000.
The files in the project have comments that should help guide you.
You can also refer to this article for details on the concepts behind this module pattern.
You can read more about using the generator here.
Nest Dynamic Package Generator Schematics generates a starter template for building NestJS dynamic packages. It uses the @nestjs/cli
core package, and provides customized schematics for generating modular NestJS applications. See here for the full set of available schematics, and documentation.