Я пытаюсь развернуть свое первое angular приложение на Heroku. Я не могу понять, как получить ключи API от конфигурационных переменных Heroku в Node.js к моему App.module.ts.
Сейчас у меня есть конечная точка для получения переменных с помощью запроса get.
module.exports = (req, res) => {
res.send({
firebase: {
apiKey: process.env.FIREBASE_API,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.DATABASE_URL,
projectId: process.env.PROJECT_ID,
storageBucket: process.env.STORAGE_BUCKET,
messagingSenderId: process.env.SENDER_ID,
appId: process.env.APP_ID,
measurementId: process.env.MEASUREMENT_ID
}
})
}
Затем я создал службу для получения переменных
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ConfigService {
private firebase;
constructor(
private http: HttpClient
) { }
public async stripeConfig(){
let stripe: any;
this.http.get('api/config/stripe')
.toPromise()
.then( ( res: any ) => {
stripe = res.stripe
})
return stripe
}
public async load(){
this.http.get('/api/config/firebase')
.toPromise()
.then( ( res: any ) => {
console.log(res.firebase)
this.firebase = res.firebase
})
return this.firebase
}
}
и, наконец, в app.module.ts мне нужно получить объект firebase. Однако я обнаружил, что кто-то создает функцию и присваивает ее первому аргументу .initializeApp. Однако это не вызывает метод.
export function appConfig ( config: ConfigService ){
return async () => await config.load()
}
@NgModule({
declarations: [
AppComponent,
HeaderComponent,
FooterComponent,
ProductPageComponent,
LoginModalComponent,
SearchFilterComponent,
ProductCardComponent,
ShippingInfoComponent,
RefundInfoComponent,
routingComponents,
SearchFilterComponent,
MobileNavComponent
],
entryComponents: [
ShippingInfoComponent,
RefundInfoComponent
],
imports: [
BrowserModule,
AppRoutingModule,
AngularFireModule.initializeApp( appConfig , 'evansgray'),
AngularFirestoreModule,
AngularFireAuthModule,
FormsModule,
HttpClientModule,
ReactiveFormsModule,
BrowserAnimationsModule,
MdComponentsModule,
ScrollingModule,
PaymentModule
],
Я попытался вызвать метод из службы, но он вызывает Typeof ConfigService, поэтому я не могу получить доступ к методу.