firebase 部署后“发生意外错误”

Posted

技术标签:

【中文标题】firebase 部署后“发生意外错误”【英文标题】:"An unexpected error has occurred" after firebase deploy 【发布时间】:2017-07-17 11:02:21 【问题描述】:

当我通过 firebase 托管托管我的网页时,在编写命令 firebase deploy 后,我收到以下错误:

微软视窗 [版本 10.0.14393] (c) 2016 年微软公司。版权所有。 C:\Users\amarg\Desktop\amar>firebase 初始化 ######## #### ######## ######## ######## ### ###### ##### ### ## ## ## ## ## ## ## ## ## ## ## ###### ## ######## ###### ######## ######### ###### ##### # ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######## ######## ## ## ###### ######## 您即将在此目录中初始化一个 Firebase 项目: C:\用户\amarg\桌面\amar 在我们开始之前,请记住: * 您正在现有的 Firebase 项目目录中进行初始化 ?你准备好继续了吗?是的 ?您想为此文件夹设置哪些 Firebase CLI 功能?托管:配置和部署 Firebase 托管站点 === 项目设置 首先,让我们将此项目目录与 Firebase 项目相关联。 您可以通过运行 firebase use --add 创建多个项目别名, 但现在我们只设置一个默认项目。 我 .firebaserc 已经有一个默认项目,跳过 === 主机设置 您的公共目录是文件夹(相对于您的项目目录) 将包含要使用 firebase deploy 上传的托管资产。如果你 为您的资产建立一个构建过程,使用您构建的输出目录。 ?你想用什么作为你的公共目录?民众 ?配置为单页应用(将所有 url 重写为 /index.html)?不 ?文件 public/404.html 已经存在。覆盖?不 我跳过写 public/404.html ?文件 public/index.html 已经存在。覆盖?不 我跳过写 public/index.html 我将配置信息写入 firebase.json... i 将项目信息写入 .firebaserc... + Firebase 初始化完成! C:\Users\amarg\Desktop\amar>firebase 部署 === 部署到“learningweb-6b2a3”... 我部署托管 + 数据库:准备部署的规则。 我托管:准备公共目录以供上传... 错误:发生了意外错误。 C:\用户\amarg\桌面\amar>

【问题讨论】:

我建议您联系 Firebase support 并在您的消息中包含 firebase deploy --debug 的输出。 按照本教程逐步操作或观看此博客上的 youtube 视频。你会明白一切。 codingaffairs.blogspot.com/2017/06/… 查看以下解决方案https://***.com/questions/50360477/angular-6-0-firebase-hosting-deploy-not-working/51809723#51809723 npm install -g npm@latest 【参考方案1】:

对我来说,更新 firebase-tools 解决了这个问题

在你的 cmd 提示符下运行以下命令

npm install -g firebase-tools

然后再次尝试 firebase init

【讨论】:

【参考方案2】:

如果您仍然使用 firebase serve 在 localhost 上为您的站点提供服务,则可能会导致问题。关闭它然后尝试部署。为我工作。

【讨论】:

这个对我有帮助【参考方案3】:

首先,查看项目根目录中的firebase-debug.log(firebase.json 旁边)可能有助于定义错误。在我的情况下,出现 “无法读取未定义的属性‘部署’” 错误。有一个关联的issue on github。删除额外的站点(我实际上并不需要它们)并在 Firebase 托管仪表板中仅保留默认站点解决了我的问题。

【讨论】:

【参考方案4】:

输入exit并回车关闭IDE的集成终端,然后重新打开它并输入命令firebase deploy

如果上述选项不起作用,那么只需使用 linux/mac 中的终端和 windows 中的 CMD 并导航到该文件夹​​,然后给出firebase deploy 命令

【讨论】:

【参考方案5】:

就我而言,解决方法:

firebase deploy --except functions

【讨论】:

虽然这适用于构建您正在使用的任何其他 Firebase 服务,但它不包括功能服务......如果您的环境中的问题是 Firebase 功能,这有点像把罐子踢下去.【参考方案6】:

下面的代码解决了我的问题。

将以下代码添加到 firebase.json。

 
    "hosting": 
      "public": "./",
      "ignore": [
        "firebase.json",
        "database-rules.json",
        "storage.rules",
        "functions"
      ],
      "headers": [
        "source" : "**/*.@(js|html)",
        "headers" : [ 
          "key" : "Cache-Control",
          "value" : "max-age=0"
         ]
      ]
    
  

【讨论】:

这对我有用,我遇到了错误:“firebase 数据库已被数据库所有者功能禁用” 不要简单地将其复制并粘贴到您的 firebase.json 中 什么鬼!!这只是忽略了所有主要服务,如函数和数据库。如果您正在使用函数或数据库,请不要使用它【参考方案7】:

通过在终端中运行 firebase login 确保您已登录。

【讨论】:

未登录的“意外错误”似乎是个糟糕的笑话:D 感谢您的回答。【参考方案8】:

我过去使用 Firebase 函数,我放弃了这个想法并在 node.js 中创建了我想要的东西。

因此,如果您不使用 firebase 函数,请删除 firebase.json 文件中的以下内容

      "functions": 
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint"
    ]
  

【讨论】:

谢谢@MichaelNorris 它拯救了我的一天【参考方案9】:

对我来说我尝试了很多,然后我发现 firebase.json 仍然有功能, 我删除了它并且它有效 顺便说一句,我正在使用

firebase deploy --except functions
firebase deploy --only hosting

这没有帮助 所以也许删除你不需要的那些


  *"functions": 
    "predeploy": [
  "npm --prefix \"$RESOURCE_DIR\" run lint",
  "npm --prefix \"$RESOURCE_DIR\" run build"
 ]
  ,*
 "hosting": 
   "public": "build",
   "ignore": [
   "firebase.json",
   "**/.*",
   "**/node_modules/**"
 ]

 

【讨论】:

【参考方案10】:

是的,我遇到过这个问题.. 这是因为我使用的节点版本是Node v.8.0.0 我只是将其降级为Node v.16.0.3,然后我的部署就完成了:)

【讨论】:

【参考方案11】:

这可能是由于 npm 和节点版本 对于 mac os,您可以使用以下命令更新 npm:

npm install -g npm@latest

并通过链接https://nodejs.org/en/ 并下载安装程序直接更新节点。 并运行

npm install -g firebase-tools

用于消除 Firebase 托管部署错误(如果您要更新现有托管站点) 你可以再做一次 1]firebase login 2]firebase init 3]firebase deploy

确保您当前的文件夹有两个东西: public 文件夹(包含所有文件 index.html)和 firebase.json 文件

【讨论】:

【参考方案12】:

在您的 firebase.json 文件中,您是否为函数或 functions.source 设置了值?如果这样做,则可能会导致此问题。 删除 angular.json 中的函数就可以了

Firebase document for functions

【讨论】:

【参考方案13】:

在我的情况下,当我没有在 firebase.json 中设置站点名称时发生此错误。

【讨论】:

【参考方案14】:

当我没有运行npm install 时,我得到了那个错误。试试看。我希望这个简单的解决方案可以帮助任何有同样问题的人。

【讨论】:

对我来说,当我进入函数目录并运行 npm install 时它起作用了。见这里:***.com/questions/48602833/…【参考方案15】:

为了解决这个问题而无需重启,

    您必须确保关闭服务器,点击 CTRL + C 然后通过firebase deploy --only functions 部署您的功能 然后再次运行firebase --serve

【讨论】:

【参考方案16】:

对我来说,这是因为我在 functions 文件夹中运行 firebase deploy。我需要在父firebase目录中运行它

【讨论】:

【参考方案17】:

你应该检查你是否有nodeJs的文件夹和你网站的文件夹 同一个本地磁盘优先!

我遇到了同样的问题,NodeJs 在 local disk (D:) 中,我正在尝试从 local disk (C:) 部署,但是当我将网站的文件夹更改为 (D:) 时,它工作正常。

【讨论】:

【参考方案18】:

firebase deployfirebase servefirebase ... 在使用Cloud Functions for Firebase 时在firebase-debug.log 中没有任何有意义的信息?

检查您的functions 文件夹中是否有package.json。它应该具有来自您的rootpackage.json 的所有依赖项,并且看起来像这样:


  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "engines": 
    "node": "12"
  ,
  "scripts": 
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  ,
  "dependencies": 
    "@angular-builders/custom-webpack": "^11.1.1",
    "@angular/animations": "^11.2.7",
    "@angular/cdk": "^11.2.6",
    ...
  ,
  "private": true

devDependencies 不是必需的。

【讨论】:

【参考方案19】:

只需检查您的 firebase.json 并删除不必要的依赖项,检查我的


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


【讨论】:

以上是关于firebase 部署后“发生意外错误”的主要内容,如果未能解决你的问题,请参考以下文章

安装VS 2015更新2后,“基础连接已关闭:发送时发生意外错误”

Elastic Beanstalk - 实例上的命令失败。发生意外错误 [错误代码:0000000001]

TypeError:无法读取未定义的“想要”属性:

修复更新后显示错误的 android studio Firebase 广告库

powerBI 连接报表服务器提示 发生意外错误

使用VMware Workstation 8 虚拟化物理机发生意外错误