Firebase 托管部署错误:任务 5fc ... 失败:6 次尝试后重试用尽

IT技术 reactjs firebase google-cloud-firestore firebase-hosting firebase-cli
2021-04-05 06:26:11

我正在尝试使用 Firestore、Functions、Storage 和 Hosting 为生产和开发环境设置 2 个全新的 Firebase 项目。我首先删除对旧 firebase 项目的引用: both firebase.json& .firebaserc然后我跑去$ firebase init使用testFirebase 项目设置 Hosting、Functions、Storage 和 Firestore 然后我设置 Firebase 别名以$ firebase use --add 在一个 React.js 项目中的两个项目之间切换。我使用 npm 构建并尝试使用: 进行部署$ firebase deploy --project:test,但主机不断尝试使用相同的最后一个文件并失败:Error: Task 5fcd... failed: retries exhausted after 6 attempts.

我已经看到了一些与服务器暂时关闭相关的 Stackoverflow 答案,但我没有看到他们这边的任何服务器问题(https://status.firebase.google.com/),而且这种情况以前一直存在。在我参与的另一个项目中,我试图在同一个 Firebase 项目上部署到 2 个托管目标,但是一个失败了,另一个工作正常,我遇到了同样的错误(我从来没有找到另一个解决方案比不使用多个目标。)

我还可以测试什么才能使其正常工作?它在我的 React.js 代码库中吗?(我最近部署到我过去的项目中)也许这与我的 Firebase 设置过程有关?或者仍然与旧的 Firebase 项目有联系?我不知道下一步该看什么来解决这个问题。任何方向都会很棒,谢谢!

Ps:可能无法连接的奇怪之处在于,如果我只运行$ firebase deploy,它不会部署 firebaserc 中定义的默认测试环境,而是实时测试环境?

.firebaserc:

{
  "projects": {
    "default": "test-app-tech",
    "test": "test-app-tech",
    "live": "live-app-tech"
  }
}

firebase.json:

{
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": "npm --prefix \"$RESOURCE_DIR\" run build"
  },
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },
  "storage": {
    "rules": "storage.rules"
  }
}

完整的控制台日志:( 不确定比控制台更长的日志文件在哪里)

   === Deploying to 'test-app-tech'...

i  deploying storage, firestore, functions, hosting
Running command: npm --prefix "$RESOURCE_DIR" run build

> functions@ build C:\Users\me\Documents\GitHub\react.app.tech\functions
> tsc

+  functions: Finished running predeploy script.
i  firebase.storage: checking storage.rules for compilation errors...
+  firebase.storage: rules file storage.rules compiled successfully
i  firestore: reading indexes from firestore.indexes.json...
i  cloud.firestore: checking firestore.rules for compilation errors...
+  cloud.firestore: rules file firestore.rules compiled successfully
i  functions: ensuring necessary APIs are enabled...
+  functions: all necessary APIs are enabled
i  storage: latest version of storage.rules already up to date, skipping upload...
i  firestore: uploading rules firestore.rules...
+  firestore: deployed indexes in firestore.indexes.json successfully
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (80.39 KB) for uploading
+  functions: functions folder uploaded successfully
i  hosting[test-app-tech]: beginning deploy...
i  hosting[test-app-tech]: found 32 files in build
⠸  hosting: uploading new files [0/1] (0%)
Error: Task 5fcd5c559ded0c02b3ed7840ca3ee77e95b798730af98d9f18bc627ac898071e failed: retries exhausted after 6 attempts
5个回答

删除.firebase文件夹中的内容并尝试重新部署。

这种方法确实允许部署我的网站。谢谢
2021-06-03 06:26:11

通过附加--debug后缀进行更深入的探索,这给了我:TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined. 探索了这个,并试图修复,但没有奏效。我删除了/node_modules/package-lock.json、 和/build/,重新安装了软件包,进行了部署并且可以正常工作。不确定是什么修复了它,因为我之前删除了这些文件无济于事。我做了一些其他看似无关的小改动,谁知道可能已经连接了,但它现在可以工作了!

更新:我必须真正找到错误,因为我的生产环境遇到了同样的问题,并将其缩小到我探索TypeError [ERR_INVALID_ARG_TYPE]. 稍微按照这篇文章,我改变了:

"hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },

"hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },

然后部署并通过,但实时服务器上没有显示任何内容,因为它当然没有查看构建文件夹。所以我把它改回指向构建而不是公共,并再次部署并且它起作用了。奇怪的解决方案,发送给 Firebase 团队看看这里到底发生了什么。

哇!多谢!你救了我几个小时的研究!
2021-06-08 06:26:11

在 ANGULAR 中,Douglas 回答的是解决方案,在 angular.json 中,您将“hosting:” dist “” 更改为“hosting:” public “”。然后你再次运行 firebase deploy ,这会给你一个错误,但别担心,去改变你在 angular.json 中修改的内容,然后再次运行 firebase deploy ,瞧!这对我有用

发生这种情况有两个原因。

  1. 通过删除根文件夹中的 .firebase 文件夹将解决问题。如果这不起作用,
  2. 您的 Internet 连接可能会变慢,并且项目中的文件大小可能会更大。所以尝试使用快速的互联网连接。

在互联网速度较慢的情况下,如果您一次又一次地尝试部署,您会看到控制台上上传的文件数量减少。这意味着您的文件正在上传,但花费了太多时间,并且 firebase 已经耗尽。

不是真的,文件总数根本没有改变。删除 firebase 文件夹也不起作用。这个问题也在 repo 中,目前没有机构有确切的解决方案。
2021-06-03 06:26:11

我的问题是连接每隔几分钟就会掉线。我能够通过重复上传过程来上传我的文件。坐在电脑前手动重复是站不住脚的,所以在我的根文件夹中,我添加了一个 bash 脚本来循环重试错误。

创建文件 deploy_staging.sh 或 deploy_production.sh 等:

#!/bin/bash
trap "exit" INT
firebase use my_project_name
until firebase deploy  --only hosting:my_project; do
  echo Transfer disrupted, retrying in 3 seconds...
  sleep 3
done

(*trap "exit" INT如果需要允许通过 ctrl-c 中断循环)

在文件所在目录下,在终端命令行运行chmod +x my_file_name.sh,使文件可执行。

./my_file_name.sh在终端中运行该文件它将重新运行,firebase deploy:production直到文件上传完毕。