UNPKG

@geekbears/gb-nest-firebase

Version:
82 lines (64 loc) 3.04 kB
<h1 align="center"></h1> <div align="center"> <a href="http://nestjs.com/" target="_blank"> <img src="https://nestjs.com/img/logo_text.svg" width="150" alt="Nest Logo" /> </a> </div> <h3 align="center">GbNestFirebase -- generated by @nestjsplus/dyn-schematics</h3> <div align="center"> <a href="https://nestjs.com" target="_blank"> <img src="https://img.shields.io/badge/built%20with-NestJs-red.svg" alt="Built with NestJS"> </a> <a href="https://github.com/nestjsplus/dyn-schematics" target="_blank"> <img src="https://img.shields.io/badge/Built%20with-%40nestjsplus%2Fdyn--schematics-brightgreen" alt="Built with @nestjsplus/dyn-schematics"> </a> </div> This dynamic module was generated with [Nest Dynamic Package Generator Schematics](https://github.com/nestjsplus/dyn-schematics). You can read more about using the generator [here](https://github.com/nestjsplus/dyn-schematics). ### Installation To install this generated project: ```bash npm install @geekbears/gb-nest-firebase ``` ### Usage (Dynamic) ```typescript @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, ) {} } ``` ### Testing 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 ```bash npm run start:dev ``` Then connect to [http://localhost:3000](http://localhost:3000). ### Customizing The files in the project have comments that should help guide you. You can also refer to [this article](https://dev.to/nestjs/advanced-nestjs-how-to-build-completely-dynamic-nestjs-modules-1370) for details on the concepts behind this module pattern. You can read more about using the generator [here](https://github.com/nestjsplus/dyn-schematics). ### About @nestjsplus/dyn-schematics [Nest Dynamic Package Generator Schematics](https://github.com/nestjsplus/dyn-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](https://github.com/nestjsplus/dyn-schematics) for the full set of available schematics, and documentation.