Это мой случай, я настроил 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)