Использование переменных конфигурации Firebase, установленных для установленной библиотеки из приложения Angular - PullRequest
0 голосов
/ 13 декабря 2018

В соответствии с моим текущим требованием, мне нужно создать библиотеку для аутентификации пользователя, для этой цели я выбрал firebase.Предполагается, что пользователь этой библиотеки предоставит переменные среды, которые будут инициализировать 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 позже в сервисе или компоненте, так как он выдает статическую ошибку инжектора.Это можно сделать с помощью переменных среды ОС или любым другим способом.

PS: кодирование началось 6 месяцев назад, пожалуйста, избавьтесь от отсутствия технического жаргона.Умышленно убрал ненужный импорт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...