Node.js Firebase部署在控制台中工作,但不在bitbucket管道中工作

Node.js Firebase部署在控制台中工作,但不在bitbucket管道中工作,node.js,firebase,bitbucket,bitbucket-pipelines,Node.js,Firebase,Bitbucket,Bitbucket Pipelines,我正试图通过bitbucket管道将我的webapp部署到firebase主机,它在管道中没有正确部署,但在控制台中工作没有问题。这是我在控制台中执行的操作: npm run build firebase login:ci firebase deploy --project $PROJECT_NAME 在管道中,我正在运行以下YAML脚本: image: node:10.15.3 pipelines: default: - step: name:

我正试图通过bitbucket管道将我的webapp部署到firebase主机,它在管道中没有正确部署,但在控制台中工作没有问题。这是我在控制台中执行的操作:

npm run build
firebase login:ci
firebase deploy --project $PROJECT_NAME
在管道中,我正在运行以下YAML脚本:

image: node:10.15.3

pipelines:
  default:
        - step:
            name: Install and Build App
            caches:
              - node
            script:
              - npm install
              - CI=false npm run build
            artifacts:
              - build/
        - step:
            name: Deploy App to Firebase
            deployment: production
            script:
              - pipe: atlassian/firebase-deploy:0.6.0
                variables:
                  KEY_FILE: $KEY_FILE
                  PROJECT_ID: $PROJECT_ID

我想这可能和firebaserc有关,但我不确定。这是.firebaserc:

firebase target:apply hosting $PROJECT_ID $DOMAIN

也许有人能解释一下为什么这不起作用,我是管道脚本新手,我不太明白问题所在,它成功地部署到firebase主机上,但在实际域上根本不起作用。

当您运行命令firebase login:ci时,它应该生成一个令牌,您可以在存储库设置>存储库变量中的Bitbucket中添加该令牌。您选择的名称应该与管道匹配。在我的示例中,我使用FIREBASE\u TOKEN\u CI。当我将更改提交到bitbucket时,它将运行管道、构建和部署

您始终可以在package.json中修改脚本,以便在cli中运行
npm run build:prod
,就像运行
npm run start
一样,并在yml中使用build:prod。 以下是一个例子:

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build:prod": "ng build --prod=true"
    }
下面的代码是一个pipeline.yml,我用于Ionic/Angular 注意:工件是运行构建后生成构建文件的文件夹。Angular称为dist,因此可以使用dist/。我的示例使用www/**即Ionics构建输出。在您的示例中,您有一些CI=False,我没有看到,也没有使用它,我的项目构建和部署。我的第二个脚本用于云函数

- cd functions
   - npm install
   - cd ..
如果没有函数,可以省略该部分。我最近在OAuth上遇到了一个错误,我不得不用login:ci生成一个新的令牌并替换我的令牌,它在部署时再次工作。希望这对任何人都有帮助。起初我也遇到了一些问题,找到了一种可以适应其他框架的工作格式



如果有人读到上面的答案,那就不必了。Bitbucket管道现在将发出警告FIREBASE_令牌因其遗留问题而被弃用。为了更好地验证,请使用google服务帐户密钥文件。希望它能帮助其他人。
image: node:10.15.3

pipelines:
 default:
   - step:
       name: Install, Build
       caches:
         - node
       deployment: test
       script:
         - npm install
         - npm run build:prod
       artifacts: 
         - www/**
   - step:
       name: Deploy to Firebase
       deployment: production
       script:
         - cd functions
         - npm install
         - cd ..
         - pipe: atlassian/firebase-deploy:0.3.4
           variables:
             FIREBASE_TOKEN: '$FIREBASE_TOKEN_CI'