angular - 当 projectId 作为环境变量发送时,Angular Firebase 不起作用
问题描述
这是我的情况,我在我的项目中设置了 angular firebase,这个项目应该部署在几个环境中,所以我设置 webpack 将环境变量传递给 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 (其值)设置为字符串时,一切正常,我尝试在 app.module.ts 加载后与字符串连接或重铸 firebase 对象,并登录浏览器控制台值,一切正常那里,但仍然触发该错误,我现在不知道为什么。
我会非常感谢你的帮助。(对不起,我的英语不好)
解决方案
推荐阅读
- for-loop - Get loop value when condition is true in robotframework
- javascript - Find parent node in binary tree from value in javascript
- python - 如何让 python 命令回到使用 python 2.7 Ubuntu?
- sorting - vue onclick 对父组件中的子组件进行排序
- visual-studio-2019 - How to use Bootstrap-select in Blazor Server App
- xml - select value sibling with condition
- arrays - Google表格查询中的任何方式来连接/附加两列的结果并将文本添加到结果中?(我知道工作表查询中没有连接)
- google-sheets - 有人可以在 Google 表格中看到这个 XIRR() 计算有什么问题吗?(我已经向 Google 发送了一个请求……)
- flutter - Flutter Firstore 时间戳现在/当前日期
- c# - 使用 ReadAsAsync
映射数据复杂的JSON数据