firebase react 应用程序部署在使用命令行部署时工作正常。但是,使用 Travis 部署时出现以下错误。
以下是我的配置文件。
language: node_js
node_js:
- 12.1.0
warnings_are_errors: false
install:
- npm install
script:
- npm run build
deploy:
provider: firebase
skip_cleanup: true
true:
branch: main
token:
secure: ****************************
环境: 全球的: 安全:******************************
{
"hosting": {
"site": "********",
"public": "build",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
API_KEY=''
AUTH_DOMAIN=''
PROJECT_ID=''
FIREBASE_STORAGE_BUCKET=''
FIREBASE_MESSAGING_SENDER_ID=''
FIREBASE_APP_ID=''
FIREBASE_DATABASE_URL=''
export const firebaseConfig = {
apiKey: process.env.API_KEY,
authDomain: process.env.AUTH_DOMAIN,
projectId: process.env.PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId:
process.env.FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.FIREBASE_APP_ID,
measurementId: process.env.measurementId
};
firebaseApp.initializeApp(firebaseConfig);
有同样的问题,配置完全相同。我能够通过将
env
变量包装在 string 构造函数中来解决。
export const firebaseConfig = {
apiKey: String(process.env.API_KEY),
authDomain: String(process.env.AUTH_DOMAIN),
projectId: String(process.env.PROJECT_ID),
storageBucket: String(process.env.FIREBASE_STORAGE_BUCKET),
messagingSenderId: String(process.env.FIREBASE_MESSAGING_SENDER_ID),
appId: String(process.env.FIREBASE_APP_ID),
measurementId: String(process.env.measurementId),
};
工作理论:传递环境变量时,它会将值识别为对象而不是字符串值。
希望能帮助任何寻找答案的人。