使用Firebase配置变量从Angular应用设置为已安装的库

时间:2018-12-13 14:36:07

标签: angular firebase environment-variables

根据我当前的要求,我需要创建一个库来验证用户身份,为此我选择了firebase。 希望该库的用户提供可从App初始化AngularFireModule的环境变量。

SocialLoginLibModule (已安装库模块)

import { AngularFireModule } from '@angular/fire';
//for testing environment variables were placed in the library
import { environment } from '../environments/environment';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFirestoreModule } from '@angular/fire/firestore';

@NgModule({
   declarations: [],
   imports: [
     CommonModule,
     //Currently using local environment
     //Need to get it from App
     AngularFireModule.initializeApp(environment.firebase),
     AngularFireAuthModule,
     AngularFirestoreModule
   ],
   providers: [],
   exports: []
})

export class SocialLoginLibModule {
   public static forRoot(environment:any): ModuleWithProviders {
     return {
       ngModule: SocialLoginLibModule,
       providers: [
        {
          provide: 'env',
          useValue: environment
        }
       ]
    }
  }
};

我尝试并成功使用模块中的forRoot()方法接收了环境变量,有没有可能使用此方法。 我以后无法在服务或组件中初始化AngularFireModule,因为它会出现“静态注射器错误”。 可以通过使用OS环境变量或其他任何方式来完成此操作。

PS:6个月后开始编码,请保留一些专业术语。故意删除不必要的进口。

0 个答案:

没有答案