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