Angular Firebase не работает, когда projectId отправляется как переменная окружения - PullRequest
1 голос
/ 28 апреля 2020

Это мой случай, я настроил angular firebase в своем проекте, этот проект должен развертываться в нескольких средах, поэтому я настроил веб-пакет для передачи переменных среды в файл environment.prod.ts, поэтому я не не нужно вносить какие-либо изменения в код при развертывании в той или иной среде

Вот так выглядит мой файл environment.prod.ts:

export const environment = {
  // other variables
  firebase: {
    apiKey: process.env.FIREBASE_APIKEY,
    authDomain: process.env.FIREBASE_AUTHDOMAIN,
    databaseURL: process.env.FIREBASE_DATABASEURL,
    projectId: process.env.FIREBASE_PROJECTID,
    storageBucket: process.env.FIREBASE_STORAGEBUCKET,
    messagingSenderId: process.env.FIREBASE_MESSAGINGSENDERID,
    appId: process.env.FIREBASE_APPID,
    measurementId: process.env.FIREBASE_MEASUREMENTID
  }
};

мой интерфейс для переменных среды выглядит так:

declare var process: Process;

interface Process {
  env: Env
}

interface Env {
  FIREBASE_APIKEY: string,
  FIREBASE_AUTHDOMAIN: string,
  FIREBASE_DATABASEURL: string,
  FIREBASE_PROJECTID: string,
  FIREBASE_STORAGEBUCKET: string,
  FIREBASE_MESSAGINGSENDERID: string,
  FIREBASE_APPID: string,
  FIREBASE_MEASUREMENTID: string
}

interface GlobalEnvironment {
  process: Process
}

и импортируется в мой app.module.ts

@NgModule({
  imports: [
    CommonModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFireAnalyticsModule,
    AngularFirestoreModule,
    AngularFireAuthModule
  ]
  // ...
})

, но по какой-то причине, когда я делаю это, переменная projectId не распознается один раз мое приложение развернуто и выдает эту ошибку в консоли

main.973a03e40daff299cb0a.js:1 ERROR FirebaseError: projectId must be a string in FirebaseApp.options
    at new e (http://192.168.43.214:8876/main.973a03e40daff299cb0a.js:1:49175)
    at Function.t.YT (http://192.168.43.214:8876/main.973a03e40daff299cb0a.js:1:267849)

Но когда я устанавливаю projectId (его значение) непосредственно в файле среды как строку, все работает хорошо, я пытался объединить строку или перезаписать объект firebase после загрузки app.module.ts и войти в значения консоли браузера, и все есть, но все еще вызывает эту ошибку, и я не знаю теперь, почему.

I Буду очень признателен за вашу помощь. (извините за мой плохой Энгли sh)

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