AngularFire и Heroku как получить ключ API от Node.js - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь развернуть свое первое 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, поэтому я не могу получить доступ к методу.

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