Firebase-tools: 无法在代理后面部署

创建于 2016-05-26  ·  151评论  ·  资料来源: firebase/firebase-tools

你好

我正在关注firebase网络教程(https://codelabs.developers.google.com/codelabs/firebase-web/)。
在第一步的8个步骤中一切正常,但是在步骤9中,我遇到了一个问题:命令firebase deploy无限期挂起。
我在代理后面有这种行为(在环境中设置了http_proxy和https_proxy)。

有没有办法在代理后面进行部署?
这似乎与问题#36有关

亚恩


这是firebase deploy --debug的输出

----------------------------------------------------------------------
Command:      node /Users/ymainier/.nvm/versions/node/v0.12.1/bin/firebase deploy --debug
CLI Version:  3.0.0
Platform:     darwin
Node Version: v0.12.1
Time:         Wed May 25 2016 16:46:59 GMT+0200 (CEST)
----------------------------------------------------------------------

> command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase"]
>>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/friendlychat-dd6a6 
<<< HTTP RESPONSE 200 server=nginx, date=Wed, 25 May 2016 14:47:57 GMT, content-type=application/json; charset=utf-8, content-length=124, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
>>> HTTP REQUEST GET https://admin.firebase.com/v1/database/friendlychat-dd6a6/tokens 
<<< HTTP RESPONSE 200 server=nginx, date=Wed, 25 May 2016 14:47:57 GMT, content-type=application/json; charset=utf-8, content-length=433, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
p2 bug

最有用的评论

Firebase开发人员请解决此问题,因为它严重延迟了最新的开发。

所有151条评论

这是一个已知的问题。 我们想找出一种解决方法,但这可能需要一些时间。 我将继续跟踪该问题。

我有同样的问题,firebase团队只是这样写我:

“目前尚不可能,请在此处跟踪: https :

实际上是指我参考此页面XP

希望这个问题能尽快解决,因为我们许多开发人员都在工作中使用此工具

我也有同样的问题。 在许多工作环境中很难评估Firebase。 :(另外,我在家中通过卫星inet遇到问题(为此打开了单独的问题):(_

同样的问题在这里! 另外,除了身份验证之外,android上的所有firebase函数都存在此问题。

我设法使它在我的工作中正常工作,但是我无法登录,

我也尝试做` firebase login --no-localhost但这只给了Error: Authentication Error.

同样的问题 ..

我两次来这个问题..

Firebase节点模块使用faye-websockets建立连接而不使用http_proxy和关联的环境变量时,发生超时。

在StackOverflow上有一条

不优雅,但至少我现在可以部署:)

这里同样的问题。 所有其他firebase命令似乎都可以正常工作。 “ firebase部署”是唯一遇到的困难。 至少应该有一条正确的错误消息。

```

T:\ ng \ firebaseutil> firebase deploy-调试

命令:C:\ Program Files \ nodejs \ node.exe C:\ Users \ myusernameAppData \ Roaming \ npm \ node_modules \ firebase-tools \ binfirebase deploy --debug
CLI版本:3.2.1
平台:win32
节点版本:v7.3.0

时间:2017年1月25日星期三11:04:37 GMT-0500(东部标准时间)

命令要求的范围:[“电子邮件”,“ openid”,“ https://www.googleapis.com/auth/cloudplatformprojects.readonly ”,“ https://www.googleapis.com/auth/firebase ”]

HTTP请求获取https://admin.firebase.com/v1/projects/myprojectname-b5558
<<< HTTP RESPONSE 200 via = IG Proxy,date = Wed,25 Jan 2017 16:04:38 GMT,server = nginx,connection = Close,content-type = application / json; charset = utf-8,cache-control = no-cache,no-store,content-length = 103,x-content-type-options = nosniff,strict-transport-security = max-age = 31536000; includeSubdomains
HTTP请求获取https://admin.firebase.com/v1/database/myprojectname-b5558/tokens
<<< HTTP RESPONSE 200 via = IG Proxy,date = Wed,25 Jan 2017 16:04:38 GMT,server = nginx,connection = Close,content-type = application / json; charset = utf-8,cache-control = no-cache,no-store,content-length = 423,x-content-type-options = nosniff,strict-transport-security = max-age = 31536000; includeSubdomains```
<>

当我“ firebase登录”时,出现了问题。.我暂时通过“ firebase login --no-localhost”解决了。 但是“ firebase init”和“ firebase deploy”我无法修复。 总是“身份验证错误”

同样的问题..

一年还没有解决办法?

来吧,邪恶的googol。

这里同样的问题。 这是我正在调用的命令,并得到相同的错误:

firebase database:set /object_name

同样的问题在这里!!!

“错误:身份验证错误:您的凭据不再有效。请运行firebase login --reauth
对于CI服务器和无头环境,请使用firebase login:ci “生成一个新令牌。

有没有办法在代理后面部署?

这是我的日志

[debug] ----------------------------------------------------------------------
[debug] Command:      C:\Program Files\nodejs\node.exe C:\Users\SDS\AppData\Roaming\npm\node_modules\firebase-tools\bin\firebase deploy
[debug] CLI Version:  3.6.1
[debug] Platform:     win32
[debug] Node Version: v7.8.0
[debug] Time:         Mon Apr 17 2017 13:35:27 GMT+0900 (대한민국 표준시)
[debug] ----------------------------------------------------------------------
[debug] 
[debug] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[debug] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"]
[debug] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token { refresh_token: '1/cLqub4wdfbPJfm6Rswlzb8L2uA7zXG1SrmTLx17kZ1w',
  client_id: '563584335869-fgrhgmd47bqne........................apps.googleusercontent.com',
  client_secret: 'j9iVZfS8kkCEFU.........',
  grant_type: 'refresh_token',
  scope: 'email https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/firebase openid' } 
 Mon Apr 17 2017 13:35:27 GMT+0900 (대한민국 표준시)
[debug] <<< HTTP RESPONSE 200
[debug] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/sample-b36e9  
 Mon Apr 17 2017 13:35:29 GMT+0900 (대한민국 표준시)
[debug] <<< HTTP RESPONSE 200
[debug] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/sample-b36e9/tokens  
 Mon Apr 17 2017 13:35:30 GMT+0900 (대한민국 표준시)
[debug] <<< HTTP RESPONSE 200

@tingxins嗨,您在执行以下命令后是否尝试过?

set "NODE_TLS_REJECT_UNAUTHORIZED=0"

Firebase开发人员请解决此问题,因为它严重延迟了最新的开发。

为什么到现在为止还没有解决?

一年

它仍然发生,并一直困扰着我...也许我会因为我在中国而放弃火力基地...

同样的问题...

同样的问题

同样的问题...

同样的问题。
在支持小组工作了3个月,没有帮助。
终于有了卸载CovenantEyes的想法,它必须具有代理,
因此登录无法正常工作。
我猜肯定有很多导致此问题的应用程序。

终于明白了!

capture120

我想出了一种适用于那些Shadowsocks代理用户的解决方案(Windows 10 Pro)。

1,在Shadowsocks PAC模式下运行“ firebase注销”;

2,在Shadowsocks PAC模式下运行“ firebase登录”;

3,切换到Shadowsocks全局模式(它将所有请求重定向到远程服务);

4,尝试“ firebase list”以查看是否出现“身份验证错误”。

这对我有用,但是我不确定是否对您有帮助。 值得一试。

  1. 运行“ firebase login --interactive ”,因此登录@gmail帐户。

这有效!!!

@WbTOne已经尝试过了。 就我而言,它不起作用。

它仍然不起作用

直到Firebase解决方案先生们

嘿,楼上的兄弟,你会说英语吗?

等待官方解决方案...此问题具有严重优先级

我只能在调试时指望好运,因为厌倦了一次又一次地尝试重新登录,这严重延迟了我的项目,我现在必须构建自己的服务器。

对我来说,当我完全退出Chrome并再次将其重新打开时,它可以再次使用

我真不敢相信这个问题将在近一年半时间内解决。

如果您是居住在中国的android开发人员,则总是这样。

我只是希望Google Play有一天能回来。

想说我也有问题
这是firebase调试

[调试] [2017-10-09T17:46:10.778Z] ----------------------------------- -----------------------------------
[调试] [2017-10-09T17:46:10.780Z]命令:C:\ Program Files \ nodejs \ node.exe C:\ Users \ HamidrezaAppData \ Roaming \ npm \ node_modules \ firebase-tools \ bin \ firebase列表
[调试] [2017-10-09T17:46:10.781Z] CLI版本:3.13.1
[调试] [2017-10-09T17:46:10.781Z]平台:win32
[debug] [2017-10-09T17:46:10.781Z]节点版本:v6.11.4
[debug] [2017-10-09T17:46:10.781Z]时间:2017年10月9日星期一21:16:10 GMT + 0330(伊朗标准时间)
[调试] [2017-10-09T17:46:10.781Z] ----------------------------------- -----------------------------------
[调试]
[调试] [2017-10-09T17:46:10.794Z]>命令需要范围:[“电子邮件”,“ openid”,“ https://www.googleapis.com/auth/cloudplatformprojects.readonly”,“ https: //www.googleapis.com/auth/firebase“]
[debug] [2017-10-09T17:46:10.795Z]>通过登录用户进行授权
[调试] [2017-10-09T17:46:10.797Z]>刷新访问令牌的范围:[“电子邮件”,“ https://www.googleapis.com/auth/cloudplatformprojects.readonly”,“ https:// www.googleapis.com/auth/firebase”,“openid”]
[debug] [2017-10-09T17:46:10.797Z] >>> HTTP请求帖子https://www.googleapis.com/oauth2/v3/token {refresh_token:'1 / OU1dLTZhJUpNdtDzicGy1xtthchW9wu84awgkUkEmGU',
client_id:“ 563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com”,
client_secret:“ j9iVZfS8kkCEFUPaAeJV0sAi”,
grant_type:“ refresh_token”,
范围:“通过电子邮件发送https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/firebase openid”}
2017年10月9日星期一21:16:10 GMT + 0330(伊朗标准时间)
[调试] [2017-10-09T17:46:11.815Z] <<< HTTP RESPONSE 200
[调试] [2017-10-09T17:46:11.829Z] >>> HTTP请求获取https://admin.firebase.com/v1/projects
2017年10月9日星期一21:16:11 GMT + 0330(伊朗标准时间)
[调试] [2017-10-09T17:46:33.060Z]错误:连接ETIMEDOUT 104.197.85.31:443
在Object.exports._errnoException(util.js:1020:11)
在exports._exceptionWithHostPort(util.js:1043:20)
在TCPConnectWrap.afterConnect上[作为完成](net.js:1090:14)
[错误]
[错误]错误:服务器错误。 连接ETIMEDOUT 104.197.85.31:443
[调试] [2017-10-09T17:46:47.934Z] ----------------------------------- -----------------------------------
[调试] [2017-10-09T17:46:47.937Z]命令:C:\ Program Files \ nodejs \ node.exe C:\ Users \ HamidrezaAppData \ Roaming \ npm \ node_modules \ firebase-tools \ bin \ firebase列表
[调试] [2017-10-09T17:46:47.937Z] CLI版本:3.13.1
[调试] [2017-10-09T17:46:47.937Z]平台:win32
[debug] [2017-10-09T17:46:47.937Z]节点版本:v6.11.4
[debug] [2017-10-09T17:46:47.938Z]时间:2017年10月9日星期一21:16:47 GMT + 0330(伊朗标准时间)
[调试] [2017-10-09T17:46:47.938Z] ----------------------------------- -----------------------------------
[调试]
[调试] [2017-10-09T17:46:47.951Z]>命令需要范围:[“电子邮件”,“ openid”,“ https://www.googleapis.com/auth/cloudplatformprojects.readonly”,“ https: //www.googleapis.com/auth/firebase“]
[debug] [2017-10-09T17:46:47.951Z]>通过登录用户授权
[调试] [2017-10-09T17:46:47.955Z] >>> HTTP请求获取https://admin.firebase.com/v1/projects
2017年10月9日星期一21:16:47 GMT + 0330(伊朗标准时间)
[调试] [2017-10-09T17:47:09.030Z]错误:连接ETIMEDOUT 104.197.85.31:443
在Object.exports._errnoException(util.js:1020:11)
在exports._exceptionWithHostPort(util.js:1043:20)
在TCPConnectWrap.afterConnect上[作为oncomplete](net.js:1090:14)
[错误]
[错误]错误:服务器错误。 连接ETIMEDOUT 104.197.85.31:443

我有一个相同的问题,请解决!

同样的问题,请解决,使用代理时无法连接到Firebase :(

这里同样的问题。
我被迫在家中部署...:D

我有一个相同的问题,请解决!

在路由器上使用代理。(Shadowsocks)
我的计算机已连接到该路由器。

image

也可以使用Android Studio登录Google帐户。

image

这个P2错误的寿命为一年半。

我在这里有同样的问题:(

刚刚在这里遇到了同样的问题

这对我有用!

设置“ NODE_TLS_REJECT_UNAUTHORIZED = 0”

也无法部署

[debug] [2017-10-31T15:00:41.884Z] ----------------------------------------------------------------------
[debug] [2017-10-31T15:00:41.884Z] Command:       C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\firebase-tools\bin\firebase deploy
[debug] [2017-10-31T15:00:41.884Z] CLI Version:   3.14.0
[debug] [2017-10-31T15:00:41.884Z] Platform:      win32
[debug] [2017-10-31T15:00:41.884Z] Node Version:  v6.11.4
[debug] [2017-10-31T15:00:41.884Z] Time:          Tue Oct 31 2017 13:00:41 GMT-0200 (Horário brasileiro de verão)
[debug] [2017-10-31T15:00:41.884Z] ----------------------------------------------------------------------
[debug] 
[debug] [2017-10-31T15:00:41.904Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[debug] [2017-10-31T15:00:41.904Z] > authorizing via signed-in user
[debug] [2017-10-31T15:00:41.904Z] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"]
[debug] [2017-10-31T15:00:41.904Z] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token { refresh_token: '1/*************************************************************************************',
  client_id: '*************************************************************.com',
  client_secret: '*******************************',
  grant_type: 'refresh_token',
  scope: 'email https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/firebase openid' } 
 Tue Oct 31 2017 13:00:41 GMT-0200 (Horário brasileiro de verão)
[debug] [2017-10-31T15:00:42.285Z] <<< HTTP RESPONSE 200
[debug] [2017-10-31T15:00:42.315Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/where2party-51f6a  
 Tue Oct 31 2017 13:00:42 GMT-0200 (Horário brasileiro de verão)
[debug] [2017-10-31T15:00:43.194Z] <<< HTTP RESPONSE 200
[debug] [2017-10-31T15:00:43.194Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/where2party-51f6a/tokens  
 Tue Oct 31 2017 13:00:43 GMT-0200 (Horário brasileiro de verão)
[debug] [2017-10-31T15:00:44.238Z] <<< HTTP RESPONSE 200

确认有效

确认的工作解决方案:

  1. 设置env var http_proxy因为request仍然需要(并且受到尊重)
  2. 入侵faye-websocket/lib/faye/websocket/client.js
...
var Client = function(_url, protocols, options) {
  options = options || {};

  options.proxy = {
    origin:  'http://localhost:1087',
  }
...
  1. 设置NODE_TLS_REJECT_UNAUTHORIZED=0
  2. 不要相信诸如p2问题标签

@namiwang对我不起作用:(

主要区别是我使用用户名/密码:

var Client = function(_url, protocols, options) {
  options = options || {};

  options.proxy = {
    origin:  'http://user:[email protected]:port',
  }

当您说set NODE_TLS_REJECT_UNAUTHORIZED=0 ,Linux上的命令是export NODE_TLS_REJECT_UNAUTHORIZED=0 ,对吗?

看起来这样应该很容易解决。 放慢我的速度....

  1. Firebase登录仅在Windows的企业笔记本电脑上不起作用。
    火基:3.16.0
    Npm:5.3.0
    Windows:7,x64
    代理: http :

  2. 尝试从我的家用笔记本电脑安装和登录,并且可以正常工作。
    Windows:10 x64

  3. 我们确实有企业代理,但是由于某种原因,它仅在Windows笔记本电脑上成为问题,尝试过MacOS和“ firebase登录”的企业笔记本电脑就可以正常工作。

  4. 在浏览器下面的文件中禁用了一些错误处理程序后,浏览器说URL http:// localhost :9005不可用,因此很可能它不仅是代理,而且Windows防火墙关闭了某些
    C:\ Users \AppData \ Roaming \ npm \ node_modules \ firebase-tools \ lib \ api.js

  5. 调试信息
    https://i.imgur.com/lslydoN.png

更新。 刚刚使登录工作。

1)运行Git Bash或任何类似Linux的命令行工具
2)执行这些命令,代替您的代理

export HTTP_PROXY =“ http://proxy.XXXXXXXX.com:80 /”
export HTTPS_PROXY =“ http://proxy.XXXXXXXX.com:80 /”

3)之后,我可以使用登录

Firebase登录-交互式

4)有用的链接

https://github.com/firebase/firebase-tools/issues/36#issuecomment -66696746
https://www.npmjs.com/package/request#controlling -proxy-behaviour-using-environment-variables

至于“ firebase部署”-仍然有这个问题。 没有错误,它只是挂起。

我没有在代理后面运行,但是看到此问题。 部署代码时出现以下错误。
**错误:服务器错误。 连接ETIMEDOUT 172.217.31.202:443

因此,我做了“ firebase登录--reauth”并提供了正确的凭据,但是当我执行“ firebase list”时,即使我已成功登录,也遇到了以下错误。
**错误:身份验证错误:您的凭据不再有效。 请运行firebase登录--reauth

然后我按照以下步骤解决问题。
Firebase注销
firebase登录->成功登录
火力清单->我可以看到我的应用
firebase deploy->我可以成功部署代码。

在酒店互联网上工作时为我服务...

坐在我的笔记本电脑前,面对相同的错误,然后继续反复。

对我一样,非常可悲的部署无法在代理后面工作:-(。
Firebase工具仍然很棒

我通过SSH解决它。

我有一个VPS,因此我在其中克隆了我的项目并登录Firebase。
一旦我需要部署新功能,只需通过SSH调用远程脚本即可。

这是一些脚本:

  • 本地中的deployFunctionsRemote.sh

    #!/usr/bin/env bash
    
    # funDir point to your functions directory
    funDir=${PROJECT}/functions
    
    # Using rsync cmd to upload local changes to the remote project
    # Excluding node_modules directory is recommend
    cmdLine="rsync -avzPr --rsh='ssh -p ${REMOTE_PORT}' --exclude=node_modules ${funDir} ${REMOTE_USR}@${REMOTE_IP}:${REMOTE_PROJECT}"
    eval ${cmdLine}
    
    # Invoke remote deploy script
    remoteDeployScript=${REMOTE_PROJECT}/deployFunctions.sh
    ssh -p ${REMOTE_PORT} ${REMOTE_USR}@${REMOTE_IP} "${remoteDeployScript}"
    
  • 远程中的deployFunctions.sh

    #!/usr/bin/env bash
    firebase deploy --only functions
    

同样的问题 :(

同样在这里
我通过共享我的移动网络解决了这个问题...

大声笑,两年登录不起作用

firebase login时,我们需要在Firebase工具中使用代理选项

https://github.com/firebase/firebase-tools/issues/155#issuecomment -349345985

为我工作。
打开控制台,输入export变量以及我公司的代理选项
然后输入firebase login --no-localhost
并打开浏览器,通过Google登录,复制令牌并将其放入控制台
和工作!)

除了部署到托管之外,所有其他事情都应在
设置环境变量。 否则,请提供一个
详细的报告。

周日,2018年1月28日,下午12:54 Sergey S.Volkov [email protected]
写道:

155(评论)

https://github.com/firebase/firebase-tools/issues/155#issuecomment-349345985

为我工作。
打开控制台,输入带有我公司的代理选项的导出变量
并输入firebase登录--no-localhost
并打开浏览器,通过Google登录,复制令牌并将其放入控制台
和工作!)

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/firebase/firebase-tools/issues/155#issuecomment-361095081
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAAD_kJ7g2hTyHtLlfnTUK3VCUxY046Iks5tPN6OgaJpZM4InPdh

当我设置HTTP_PROXY并在代理URL中提供身份验证时,返回服务器错误。 无法建立隧道套接字,statusCode = 407错误

好吧,我设法做类似@namiwang的事情。

以下是有关我使用的版本的一些信息。
节点:7.5.0
npm:4.1.2
火基:3.13.1

firebase-tools是全局安装的,因此我必须修改安装firebase-tools的代理设置。
就我而言,它位于〜/ .nvm / versions / node / v7.5.0 / lib / node_modules / firebase-tools

1)打开文件〜/ .nvm / versions / node / v7.5.0 / lib / node_modules / firebase-tools / node_modules / firebase / node_modules / faye-websocket / lib / faye / websocket / client.js

2)修改行

  options = options || {};
  this.url     = _url;

  options = options || {};
  options.proxy = {
    origin: 'http://user:[email protected]:3128',
    headers: {'User-Agent': 'node'},
  };
  this.url     = _url;

3)继续您的项目,然后启动firebase命令进行部署

cd ~/workspace/myProject/functions
firebase deploy --only functions

凉。 我们可以做这样的事情吗?

if (process.env.HTTP_SERVER) {
   options.proxy = {
      origin: process.env.HTTP_SERVER,
      headers: { 'User-Agent': 'node' }
   };
}

谢谢@namiwang的帮助。 它对我有用...

“部署挂起”仍然是一个问题,无法固定设置proxy env var ...对此有任何解决方案?

这是不能接受的,两年后,这个问题还不能解决吗? 是什么?

@LastStranger试试这个https://github.com/firebase/firebase-tools/issues/155#issuecomment -349345985

但是我使用firebase login --no-localhost no-localhost标志

@ js2me export HTTPS_PROXY =“ http://proxy.XXXXXXXX.com:80 /” ????

@LastStranger Hmm,很奇怪。 你在git bash中尝试吗?

如何在Windows上设置NODE_TLS_REJECT_UNAUTHORIZED=0

与我分享解决方案,了解哪些人想在GFW内部工作,而又不愿意在GFW内部生活。

Env:具有shadowsocks-ng的MacOS

〜/ .bash_profile

alias cbrew="ALL_PROXY=socks5://127.0.0.1:1086 brew"

# using polipo
alias cfirebase="http_proxy=http://127.0.0.1:8123 firebase"

# your shadowsocks may already have http proxy feature
alias cfirebase="http_proxy=http://127.0.0.1:1087 firebase"

上polipo http代理(可选)

cbrew install polipo
polipo socksParentProxy=localhost:1086 &

登录

cfirebase login --debug

polyfill faye-websocket

谢谢@namiwang它的工作原理。

因为firebase sdk 2.xx已缩小,所以... polyfill faye-websocket比修复sdk容易。

// if you installed node by brew, the path would be /usr/local/lib/node_modules/firebase-tools/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/client.js
...
var proxy_uri = process.env.http_proxy
if (proxy_uri) {
  options.proxy = { origin: proxy_uri }
}
...

部署

cfirebase deploy --only functions --debug

实际上,较新的firebase sdk已经修复了该错误。 等待着火力的工具更新了部门...

现在是2018年,仍然没有修复,看起来他们没有维护它。

不行

很难受 还没解决- -?

@victorsferreira

我通过共享我的移动网络解决了这个问题...

这也解决了我的“部署功能”问题。

谷歌,谷歌。 另一个无法解决的严重错误。

作为中文,如果我们需要访问google,则必须使用代理!!!

一种解决方案是,搬到另一个国家💃

这对于CI部署也很有用

所以,我必须放弃使用Firebase吗? 在中国,没有代理人,我什至无法在Google中搜索。 好像我看过水晶蛋糕一样,我不能吃东西。

我希望在一些基础架构正常工作时能在这方面获得一些好消息
我们现在正在做的事情。 我没有提供具体的时间表,
然而。

很抱歉,解决这个问题的时间太长了,这已经远远超过了
比您想象的要复杂。

在2018年6月29日星期五,上午1:12 noobhui [email protected]写道:

所以,我必须放弃使用Firebase吗? 在中国,没有代理人我不能
甚至在谷歌搜索。 好像我看过水晶蛋糕一样,我不能吃东西。

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/firebase/firebase-tools/issues/155#issuecomment-401282471
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAAD_hDs8s1zUkv3-8QFYSxcvCFrNFs2ks5uBeFagaJpZM4InPdh

据我所知,只需要a patched firebase sdk v2 ,就可以将env.http_proxy传递给模块faye-websocket或up sdk to date (v4)

您能告诉我们为什么它比我们想象的复杂得多吗?
也许我们可以提供帮助。

谢谢。

对于Windows中存在问题的用户:export是Linux命令),但是您可以设法使其在Windows上运行。

首先安装Cmder ,这是一个简单的控制台模拟器。 接下来,您将必须运行bash shell(不是powershell,cmd shell,bash shell)。

制作完bash shell之后,您实际上可以运行以下两个命令:

export HTTP_PROXY="your proxy"
export HTTPS_PROXY="your proxy"

这将设置您的Windows代理(我不知道如何,我似乎没有找到它在env变量或Internet选项中所做的事情)。 由此,firebase可以简单地与firebase login而没有任何其他问题。

我已经尝试了本期中的所有解决方案(除了修改库之外,我不是野蛮的:D),这是唯一对我有用的解决方案。 我希望这有帮助 !

面临同样的问题...谷歌何时会解决这个问题?

我遇到了同样的问题,我通过firebase login登录到Firebase -CLI,然后尝试在命令行中运行firebase use --add以选择合适的项目,并出现以下错误:

错误:服务器错误。 连接ETIMEDOUT 104.197.85.31:443

为这个错误而生气。 什么时候可以得到解决。 我用firebase无法完成我的项目:(

也不适合我。 尝试了一堆解决方案,无法相信Firebase无法处理代理。

一年后仍然出现同样的错误。谁来怪中国防火墙或谷歌Firebase ..,

`? 允许Firebase收集匿名CLI使用情况和错误报告信息? (是/否)

PS C:\ Users \ murugan_nagarajan> firebase登录--debug
[2018-08-10T07:22:00.621Z] -------------------------------------- --------------------------------
[2018-08-10T07:22:00.626Z]命令:C:\ Program Files \ nodejs \ node.exe C:\ Users \ murugan_nagarajanAppData \ Roaming \ npm \ node_modules \ firebase-tools \ binfirebase登录--debug
[2018-08-10T07:22:00.627Z] CLI版本:4.0.3
[2018-08-10T07:22:00.627Z]平台:win32
[2018-08-10T07:22:00.627Z]节点版本:v10.8.0
[2018-08-10T07:22:00.629Z]时间:2018年8月10日星期五15:22:00 GMT + 0800(中国标准时间)
[2018-08-10T07:22:00.630Z] -------------------------------------- --------------------------------

? 允许Firebase收集匿名CLI使用情况和错误报告信息? 没有

在任何设备上访问此URL登录:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcl
oudplatformprojects.readonly%20https%3A%2F%2F www.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type = code&state = 452226808&redirect_uri = htt
p%3A%2F%2Flocalhost%3A9005

正在等待验证...
[2018-08-10T07:22:48.312Z] >>> HTTP请求发布https://accounts.google.com/o/oauth2/token
{代码:
'4 / NwD80jRUIDzAwBxmuqqIQxaOPyLfiOUL1Yx5eKGKzqtnfk88q4anmyxTozeLKQEE9DOxPuMklrrc42teX491Kuw',
client_id:
'563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com',
client_secret:“ j9iVZfS8kkCEFUPaAeJV0sAi”,
redirect_uri:' http:// localhost :9005',
grant_type:'authorization_code'}
2018年8月10日星期五15:22:48 GMT + 0800(中国标准时间)
[2018-08-10T07:22:48.455Z]令牌提取错误:错误
在新的FirebaseError(C:\ Users \ murugan_nagarajanAppData \ Roaming \ npm \ node_modules \ firebase-tools \ lib \ error.js:11:16)
在Request._callback(C:\ Users \ murugan_nagarajanAppData \ Roaming \ npm \ node_modules \ firebase-tools \ lib \ api.js:35:11)
在self.callback(C:\ Users \ murugan_nagarajanAppData \ Roaming \ npm \ node_modules \ firebase-tools \ node_modulesrequestrequest.js:185:22)
在Request.emit(events.js:182:13)
在Request.EventEmitter.emit(domain.js:442:20)
在Request.onRequestError(C:\ Users \ murugan_nagarajanAppData \ Roaming \ npm \ node_modules \ firebase-tools \ node_modulesrequestrequest.js:877:8)
在ClientRequest.emit(events.js:182:13)
在ClientRequest.EventEmitter.emit(domain.js:442:20)
在TLSSocket.socketErrorListener(_http_client.js:382:9)
在TLSSocket.emit(events.js:182:13)
^ C终止批处理作业(是/否)?

好的,现在是时候彻底修复此错误了! 随着v4.1.0 ,Firebase CLI不再依赖Websocket连接来进行托管部署。 这意味着所有事情都是通过标准HTTP请求完成的,应该可以轻松地使其与代理一起使用。

我将尝试让一个测试代理在本地运行,以自己解决这个问题,但对于那些受影响的人来说:

  1. v4.1.0 “正常工作”还是您仍然有错误?
  2. 设置HTTPS_PROXY环境变量对您有用吗?

我知道这是一条漫长的路,但是(我希望)它很快就会结束。 请报告您在4.1.0方面的经验,我们将着手解决所有剩余的问题!

@mbleigh我可以证实它正常工作与HTTPS_PROXY在设置4.1.0 。 👍

更新:昨天我发现自己也卡住了。 您可以看到已启用--debug并停留在此处:

[2018-08-17T15:50:53.061Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 17 Aug 2018 15:50:52 GMT, content-type=application/json; charset=utf-8, content-length=255, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store

升级到4.1.2 ,现在对我来说一切都很好。

升级到v4.1.0,还设置了HTTPS_PROXY。
firebase登录,注销,列表运行良好,但是在获得令牌后部署仍然卡住。

升级到v4.1.0并设置HTTP_PROXY登录后有效...但是卡在firebase部署上

提交报告的人们是否可以在调试日志的最后几行(使用--debug运行)(省略所有身份验证令牌)以及运行在后面的代理类型(如果知道) )。

我们在v4.1.2中进行了一些其他更新,可能会解决firebase deploy代理问题。 请尝试一下,如果它不起作用,请通知我!

@mbleigh firebase命令支持哪些代理类型? 例如, gcloud命令支持http,http_no_tunnel,socks4,socks5代理类型。 在我的测试中,最新版本的firebase仍然不支持socks5。

firebase是否将request作为http客户端库使用? 它支持http / https代理类型,但我不知道它是否支持socks5等其他类型。

在firebase v4.2.0 ,您可以将代理服务器添加到内容服务器。

编辑位于request.js中的$NODE_PATH/node_modules/request/request.js:290

// line 290 to 298
 // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = 'http://127.0.0.1:1087'    // add proxy server
  self.tunnel = self._tunnel.isEnabled()

  if (self.proxy) {
    self._tunnel.setup(options)
  }

因此,登录成功! 😃


登录成功后,请不要忘记删除代理服务器设置。

@ chen86860不,您现在不修改源代码,只需在您的环境中导出代理:

$ export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;

@hanguokai当前,我们支持http_proxyhttps_proxy环境变量(但仅此而已)。 我认为对socks4 socks5可能应该在其他功能请求中-随时提出!

好了,我为袜子代理支持添加了另一个问题#883。

我知道某些应用程序还支持袜子代理的环境变量,例如:
export http_proxy=socks5://127.0.0.1:1080 https_proxy=socks5://127.0.0.1:1080

希望firebase命令也支持它。

你好
我确认在我的环境中此错误已通过v4.1.2修复

好的,这是我们的位置:

认为我们现在可以通过设置正确的环境变量来支持HTTP和HTTPS代理。 我将根据收到的反馈(我们最近的发行版已解决该问题)来解决此问题。

如果您使用的是袜子代理,请留下#883的赞词。 如果您仍然遇到HTTP / S代理问题,并且已正确设置HTTP_PROXYHTTPS_PROXY环境变量,请在此线程中提供尽可能多的详细信息。

@chenxsan哦,看来这是解决此问题的更好方法,谢谢〜😆

firebase登录--no-localhost

这个命令为我在代理后面修复了它

在firebase v4.2.0 ,您可以将代理服务器添加到内容服务器。

编辑位于request.js中的$NODE_PATH/node_modules/request/request.js:290

// line 290 to 298
 // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = 'http://127.0.0.1:1087'    // add proxy server
  self.tunnel = self._tunnel.isEnabled()

  if (self.proxy) {
    self._tunnel.setup(options)
  }

因此,登录成功! 😃

登录成功后,请不要忘记删除代理服务器设置。

大!!!

@ chen86860不,您现在不修改源代码,只需在您的环境中导出代理:

$ export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;

我只是在终端中运行脚本,但仍然遇到相同的错误。那是怎么回事?
yongjiamingdeMacBook- Pro: firebase yongjiaming $ firebase登录--debug
[2018-09-18T03:33:08.860Z] -------------------------------------- --------------------------------
[2018-09-18T03:33:08.863Z]命令:/usr/local/Cellar/node/9.6.1/bin/node / usr / local / bin / firebase login --debug
[2018-09-18T03:33:08.864Z] CLI版本:4.2.1
[2018-09-18T03:33:08.864Z]平台:达尔文
[2018-09-18T03:33:08.864Z]节点版本:v9.6.1
[2018-09-18T03:33:08.864Z]时间:2018年9月18日星期二11:33:08 GMT + 0800(CST)
[2018-09-18T03:33:08.864Z] -------------------------------------- --------------------------------

? 允许Firebase收集匿名CLI使用情况和错误报告信息? 是

在任何设备上访问此URL登录:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformproject 20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type = code&state = 971322293&redirect_uri = http%3A%2F%2Flocalhost%3A9005

正在等待验证...
[2018-09-18T03:33:16.437Z] >>> HTTP请求发布https://accounts.google.com/o/oauth2/token
代码= 4 / XgBxvL5SXC-Wg5vT8CCTdfLIoTPKVkCOFcmVku25RwRlkLUc-inqxg6mPRNX7JKRA8fWufJEm-7e5BKTbfFCmsk,CLIENT_ID = 563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com,client_secret = j9iVZfS8kkCEFUPaAeJV0sAi,REDIRECT_URI = HTTP://本地主机:9005,grant_type = authorization_code
[2018-09-18T03:33:16.454Z]令牌提取错误:错误
在新的FirebaseError(/usr/local/lib/node_modules/firebase-tools/lib/error.js:11:16)
在Request._callback(/usr/local/lib/node_modules/firebase-tools/lib/api.js:34:11)
在self.callback(/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:185:22)
在Request.emit(events.js:127:13)
在Request.emit(domain.js:421:20)
在Request.onRequestError(/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:881:8)
在ClientRequest.emit(events.js:127:13)
在ClientRequest.emit(domain.js:421:20)
在ClientRequest.onError(/usr/local/lib/node_modules/firebase-tools/node_modules/tunnel-agent/index.js:179:21)
在Object.onceWrapper(events.js:219:13)
^ Z
[1] +停止了Firebase登录--debug

我也将项目部署到代理后面的Firebase时遇到问题。
登录即可正常进行。

将http_proxy和https_proxy设置为cntlm。
我尝试过的命令是:

firebase deploy -P <projectname> --token <token> --debug
firebase deploy -P <projectname> --debug

这是输出:

firebase deploy -P prod --debug
[2018-09-20T09:42:15.911Z] ----------------------------------------------------------------------
[2018-09-20T09:42:15.926Z] Command:       C:\Program Files\nodejs\node.exe C:\Users\<user>\AppData\Roaming\npm\node_modules\firebase-tools\bin\firebase deploy -P prod --debug
[2018-09-20T09:42:15.942Z] CLI Version:   4.2.1
[2018-09-20T09:42:15.942Z] Platform:      win32
[2018-09-20T09:42:15.942Z] Node Version:  v8.11.3
[2018-09-20T09:42:15.942Z] Time:          Thu Sep 20 2018 11:42:15 GMT+0200 (Mitteleuropäische Sommerzeit)
[2018-09-20T09:42:15.942Z] ----------------------------------------------------------------------

[2018-09-20T09:42:15.973Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2018-09-20T09:42:15.975Z] > authorizing via signed-in user
[2018-09-20T09:42:15.978Z] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"]
[2018-09-20T09:42:15.979Z] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token
 refresh_token=<token>, client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com, client_secret=j9iVZfS8kkCEFUPaAeJV0sAi, grant_type=refresh_token, scope=email https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/firebase openid
[2018-09-20T09:42:16.321Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=utf-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 20 Sep 2018 09:42:16 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="44,43,39,35", accept-ranges=none, connection=close
[2018-09-20T09:42:16.332Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/<project>


!  Your CLI authentication needs to be updated to take advantage of new features.
!  Please run firebase login --reauth

[2018-09-20T09:42:16.485Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase"]
[2018-09-20T09:42:16.485Z] > authorizing via signed-in user
[2018-09-20T09:42:16.485Z] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"]
[2018-09-20T09:42:16.485Z] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token
 refresh_token=<token>, client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com, client_secret=j9iVZfS8kkCEFUPaAeJV0sAi, grant_type=refresh_token, scope=email https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/firebase openid
[2018-09-20T09:42:16.740Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=utf-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 20 Sep 2018 09:42:16 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="44,43,39,35", accept-ranges=none, connection=close
[2018-09-20T09:42:16.769Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/<project>

[2018-09-20T09:42:16.861Z] Error: tunneling socket could not be established, statusCode=407
    at ClientRequest.onConnect (C:\Users\<user>\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\tunnel-agent\index.js:166:19)
    at Object.onceWrapper (events.js:319:30)
    at emitThree (events.js:136:13)
    at ClientRequest.emit (events.js:217:7)
    at Socket.socketOnData (_http_client.js:474:11)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)

Error: Server Error. tunneling socket could not be established, statusCode=407

@ chen86860不,您现在不修改源代码,只需在您的环境中导出代理:

$ export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;

我只是在终端中运行脚本,但仍然遇到相同的错误。那是怎么回事?
yongjiamingdeMacBook- Pro: firebase yongjiaming $ firebase登录--debug
[2018-09-18T03:33:08.860Z] -------------------------------------- --------------------------------
[2018-09-18T03:33:08.863Z]命令:/usr/local/Cellar/node/9.6.1/bin/node / usr / local / bin / firebase login --debug
[2018-09-18T03:33:08.864Z] CLI版本:4.2.1
[2018-09-18T03:33:08.864Z]平台:达尔文
[2018-09-18T03:33:08.864Z]节点版本:v9.6.1
[2018-09-18T03:33:08.864Z]时间:2018年9月18日星期二11:33:08 GMT + 0800(CST)
[2018-09-18T03:33:08.864Z] -------------------------------------- --------------------------------

? 允许Firebase收集匿名CLI使用情况和错误报告信息? 是

在任何设备上访问此URL登录:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformproject 20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type = code&state = 971322293&redirect_uri = http%3A%2F%2Flocalhost%3A9005

正在等待验证...
[2018-09-18T03:33:16.437Z] >>> HTTP请求发布https://accounts.google.com/o/oauth2/token
代码= 4 / XgBxvL5SXC-Wg5vT8CCTdfLIoTPKVkCOFcmVku25RwRlkLUc-inqxg6mPRNX7JKRA8fWufJEm-7e5BKTbfFCmsk,CLIENT_ID = 563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com,client_secret = j9iVZfS8kkCEFUPaAeJV0sAi,REDIRECT_URI = HTTP://本地主机:9005,grant_type = authorization_code
[2018-09-18T03:33:16.454Z]令牌提取错误:错误
在新的FirebaseError(/usr/local/lib/node_modules/firebase-tools/lib/error.js:11:16)
在Request._callback(/usr/local/lib/node_modules/firebase-tools/lib/api.js:34:11)
在self.callback(/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:185:22)
在Request.emit(events.js:127:13)
在Request.emit(domain.js:421:20)
在Request.onRequestError(/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:881:8)
在ClientRequest.emit(events.js:127:13)
在ClientRequest.emit(domain.js:421:20)
在ClientRequest.onError(/usr/local/lib/node_modules/firebase-tools/node_modules/tunnel-agent/index.js:179:21)
在Object.onceWrapper(events.js:219:13)
^ Z
[1] +停止了Firebase登录--debug

只需更新到最新的暗影,一切都好〜

我住在中国,因此由于GFW,使用Google的产品确实非常困难。 目前,我正在使用Shadowsocks在1080端口监听以访问Google服务。

这是另一个问题,如果您想运行firebase serve来提供动态功能,则不能使用http_proxy=socks5://127.0.0.1:1080 ,因为本地主机请求也将以这种方式进行代理。

我只使用https_proxy=socks5://127.0.0.1:1080解决了这个问题

概要

登录

firebase login --no-localhost

服务

export https_proxy=socks5://127.0.0.1:1080
firebase serve

部署

BEGIN_PROXYAFTER_PROXY之间添加以下代码到您的functions/node_modules/faye-websocket/lib/faye/websocket/client.js

// ...
var Client = function(_url, protocols, options) {
  options = options || {};

  // BEGIN_PROXY
  options.proxy = {
    origin:  'http://localhost:8888',
    headers: {'User-Agent': 'node'},
  }
  // AFTER_PROXY

// ...
firebase deploy


点击查看我的日志

upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ firebase login --no-localhost
? Allow Firebase to collect anonymous CLI usage and error reporting
 information? No

Visit this URL on any device to log in:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=928286882&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob

? Paste authorization code here: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

+  Success! Logged in as [email protected]

upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ firebase serve

=== Serving from 'E:\github\firebase-test'...

i  functions: Preparing to emulate functions.
i  hosting: Serving hosting files from: public
+  hosting: Local server: http://localhost:5000
Warning: You're using Node.js v8.11.3 but Google Cloud Functions only supports v6.11.5.
+  functions: app: http://localhost:5001/learning-13a18/us-central1/app
127.0.0.1 - - [08/Nov/2018:04:40:35 +0000] "GET / HTTP/1.1" 200 3505 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:37 +0000] "GET /__/firebase/init.js HTTP/1.1" 200 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:37 +0000] "GET /__/firebase/5.5.7/firebase-app.js HTTP/1.1" 200 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:38 +0000] "GET /__/firebase/5.5.7/firebase-auth.js HTTP/1.1" 200 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:38 +0000] "GET /__/firebase/5.5.7/firebase-messaging.js HTTP/1.1" 200 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:38 +0000] "GET /__/firebase/5.5.7/firebase-database.js HTTP/1.1" 200 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:39 +0000] "GET /__/firebase/5.5.7/firebase-storage.js HTTP/1.1" 200 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:04:40:40 +0000] "GET /favicon.ico HTTP/1.1" 404 1808 "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0;
Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
[hosting] Rewriting /timestamp to local function app
info: User function triggered, starting execution
info: Execution took 23 ms, user function completed successfully
127.0.0.1 - - [08/Nov/2018:04:40:41 +0000] "GET /timestamp HTTP/1.1" 200 13 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
[hosting] Rewriting /timestamp to local function app
info: User function triggered, starting execution
info: Execution took 2 ms, user function completed successfully
127.0.0.1 - - [08/Nov/2018:04:40:43 +0000] "GET /timestamp HTTP/1.1" 200 13 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
Shutting down...


upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ export http_proxy=socks5://127.0.0.1:1080

upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ firebase serve

Error: Server Error. socket hang up

upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ export http_proxy=

upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ firebase serve

=== Serving from 'E:\github\firebase-test'...

i  functions: Preparing to emulate functions.
i  hosting: Serving hosting files from: public
+  hosting: Local server: http://localhost:5000
Warning: You're using Node.js v8.11.3 but Google Cloud Functions only supports v6.11.5.
+  functions: app: http://localhost:5001/learning-13a18/us-central1/app
Shutting down...


upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ firebase deploy

Error: Server Error. socket hang up

upupming@DESKTOP-6EB87T6 MINGW64 /e/github/firebase-test
$ firebase deploy

=== Deploying to 'learning-13a18'...

i  deploying functions, hosting
Running command: npm --prefix "%RESOURCE_DIR%" run lint

> functions@ lint E:\github\firebase-test\functions
> eslint .

+  functions: Finished running predeploy script.
i  functions: ensuring necessary APIs are enabled...
+  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (52.46 KB) for uploading
+  functions: functions folder uploaded successfully
i  hosting[learning-13a18]: beginning deploy...
i  hosting[learning-13a18]: found 2 files in public
+  hosting[learning-13a18]: file upload complete
i  functions: updating Node.js 6 function app(us-central1)...
+  functions[app(us-central1)]: Successful update operation.
i  hosting[learning-13a18]: finalizing version...
+  hosting[learning-13a18]: version finalized
i  hosting[learning-13a18]: releasing new version...
+  hosting[learning-13a18]: release complete

+  Deploy complete!

Project Console: https://console.firebase.google.com/project/learning-13a18/overviewHosting URL: https://learning-13a18.firebaseapp.com

替代解决方案

如果您一直使用家庭WiFi网络,则可以在路由器上配置Shadowsocks代理。 有关更多信息,请参见此回购

我住在中国,因此由于GFW,使用Google的产品确实非常困难。 目前,我正在使用Shadowsocks在1080端口监听以访问Google服务。

这是另一个问题,如果您想运行firebase serve来提供动态功能,则不能使用http_proxy=socks5://127.0.0.1:1080 ,因为本地主机请求也将以这种方式进行代理。

我只使用https_proxy=socks5://127.0.0.1:1080解决了这个问题

概要

登录

firebase login --no-localhost

服务

export https_proxy=socks5://127.0.0.1:1080
firebase serve

部署

BEGIN_PROXYAFTER_PROXY之间添加以下代码到您的functions/node_modules/faye-websocket/lib/faye/websocket/client.js

// ...
var Client = function(_url, protocols, options) {
  options = options || {};

  // BEGIN_PROXY
  options.proxy = {
    origin:  'http://localhost:8888',
    headers: {'User-Agent': 'node'},
  }
  // AFTER_PROXY

// ...
firebase deploy

点击查看我的日志

替代解决方案

如果您一直使用家庭WiFi网络,则可以在路由器上配置Shadowsocks代理。 有关更多信息,请参见此回购

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;export NO_PROXY=localhost,127.0.0.1

2019仍然不起作用! 运气好的话?

我没有落后于代理人。 登录成功,并且在部署中也遇到同样的问题。

出口http_proxy = http://127.0.0.1:1087 ;出口https_proxy = http://127.0.0.1:1087 ;出口NO_PROXY = localhost,127.0.0.1

在中国的影s背后为我工作。 谢谢!

同样的问题 ..

大家好! 这是另一种非常简单的解决方案,您无需编辑任何文件。 而不是使用Shadowsocks / ShadowsocksR,请尝试SSTap。 SSTap创建一个虚拟网卡。 我不知道如何解释,但是它的工作原理就像您在路由器上运行Shadowsocks(R)一样。 为我工作。

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;export NO_PROXY=localhost,127.0.0.1

它可以在我的Mac上与中国的shadowsocks一起使用。 非常感谢!

由shadowsocks驱动的Windows 10上的Powershell中。

PS> $env:http_proxy = 'http://127.0.0.1:1080'
PS> $env:https_proxy = 'http://127.0.0.1:1080'
PS> $env:NO_PROXY = 'localhost,127.0.0.1'
PS> firebase login

2019/03/24,我的Mac Air仍然失败

大家好! 这是另一种非常简单的解决方案,您无需编辑任何文件。 而不是使用Shadowsocks / ShadowsocksR,请尝试SSTap。 SSTap创建一个虚拟网卡。 我不知道如何解释,但是它的工作原理就像您在路由器上运行Shadowsocks(R)一样。 为我工作。

@ yqx1110非常感谢,这是我见过的最强大的工具。

失败,不起作用

您好,我刚刚找到了解决方案。 请点击链接https://qiita.com/tanoc/items/ac92464de473ae483d50

您好,我刚刚找到了解决方案。 请点击链接https://qiita.com/tanoc/items/ac92464de473ae483d50

上面的内容也适用于扣环。 谢谢

由shadowsocks驱动的Windows 10上的Powershell中。

PS> $env:http_proxy = 'http://127.0.0.1:1080'
PS> $env:https_proxy = 'http://127.0.0.1:1080'
PS> $env:NO_PROXY = 'localhost,127.0.0.1'
PS> firebase login

谢谢,它在win10上对我有用。

疯狂使用此技巧在Mac上运行

Screen Shot 2019-07-19 at 12 45 14

  1. 转到Mac上的网络代理设置,然后将CNTL本地主机的代理服务器和端口更改为实际的企业服务器和端口。
    Screen Shot 2019-07-19 at 13 06 34

    1. 终端临时身份验证代理中的“否”

ProxyPass&ProxyUserName:与存储在CNTLM中的登录凭据相同
ProxyServer&ProxyPort:与您在网络设置中设置的相同。

export http_proxy=http://<ProxyUserName>:<ProxyPass>@<ProxyServer>:<ProxyPort>
export https_proxy=http://<ProxyUserName>:<ProxyPass>@<ProxyServer>:<ProxyPort>

现在,我能够正常登录Firebase并部署云功能。 希望能奏效

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;export NO_PROXY=localhost,127.0.0.1

为我工作! 谢谢。

2019.8.10我已经尝试了上面的几乎所有解决方案,但没有用。 可悲的是...

@starry
为我工作,谢谢

由shadowsocks驱动的Windows 10上的Powershell中。

PS> set http_proxy = 'http://127.0.0.1:1080'
PS> set https_proxy = 'http://127.0.0.1:1080'
PS>set NO_PROXY = 'localhost,127.0.0.1'
PS> firebase login

在win10中,这对我有用,1080是我的代理端口

疯狂使用此技巧在Mac上运行

Screen Shot 2019-07-19 at 12 45 14

  1. 转到Mac上的网络代理设置,然后将CNTL本地主机的代理服务器和端口更改为实际的企业服务器和端口。

Screen Shot 2019-07-19 at 13 06 34

  1. 终端临时身份验证代理中的“否”

ProxyPass&ProxyUserName:与存储在CNTLM中的登录凭据相同
ProxyServer&ProxyPort:与您在网络设置中设置的相同。

export http_proxy=http://<ProxyUserName>:<ProxyPass>@<ProxyServer>:<ProxyPort>
export https_proxy=http://<ProxyUserName>:<ProxyPass>@<ProxyServer>:<ProxyPort>

现在,我能够正常登录Firebase并部署云功能。 希望能奏效

这个对我有用! 谢谢。 😇

仍然遇到这个问题,无法相信它在2020年仍然存在...

同样的问题。

对于在Mac上使用v2ray作为代理的用户:

  1. 在设置中找到代理:
    image
  2. 在您的终端中导出代理:
    出口http_proxy = http:// localhost :1087(这是我的代理地址)
  3. 在全局nodejs文件夹中的firebase工具文件夹中找到faye lib。 路径示例可以像这样。 您可以通过在Mac上搜索“ faye”找到此文件。
    /node_modules/firebase-tools/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/client.js
  4. 添加faye的代理作为配置。 您需要编辑faye的client.js文件。
    var Client = function(_url,协议,选项){
    选项=选项|| {};
    //在此为Firebase使用的faye添加代理
    options.proxy = {
    来源:' http:// localhost :1087',
    };

    }
    5.通过终端导出NODE_TLS_REJECT_UNAUTHORIZED = 0
    6.firebase通过终端登录--no-localhost

希望这会有所帮助:
这里的主要逻辑是告诉王菲我的本地计算机上有一个代理

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址
    WeChatd29e8b5b594f8cff963da7441b84fbc9

  2. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径

  3. 找到下面的代码,关于第276行

  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址

WeChatd29e8b5b594f8cff963da7441b84fbc9

  1. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径
  2. 找到下面的代码,关于第276行
  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost

这个对我有用! 你真的救了我! 谢谢!

在最新版本中是否有针对此问题的解决方案?

希望对你有帮助:

步骤与之前相同。 新文件位置:... / firebase-tools / lib / api.js

在第297行附近找到以下代码

reqOptions.headers = options.headers; reqOptions.timeout = options.timeout;

附加reqOptions.proxy = "http://127.0.0.1:10818";

运行firebase login --no-localhost

感谢您指出这一点, @ jplyue几乎对新的Firebase Tools版本不再与我们的公司代理一起工作感到疯狂。

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址

WeChatd29e8b5b594f8cff963da7441b84fbc9

  1. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径
  2. 找到下面的代码,关于第276行
  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost

为我工作!!!!!!!!!

从代理使用firebase真的很痛苦:(

疯狂使用此技巧在Mac上运行
Screen Shot 2019-07-19 at 12 45 14

  1. 转到Mac上的网络代理设置,然后将CNTL本地主机的代理服务器和端口更改为实际的企业服务器和端口。

Screen Shot 2019-07-19 at 13 06 34

  1. 终端临时身份验证代理中的“否”

ProxyPass&ProxyUserName:与存储在CNTLM中的登录凭据相同
ProxyServer&ProxyPort:与您在网络设置中设置的相同。

export http_proxy=http://<ProxyUserName>:<ProxyPass>@<ProxyServer>:<ProxyPort>
export https_proxy=http://<ProxyUserName>:<ProxyPass>@<ProxyServer>:<ProxyPort>

现在,我能够正常登录Firebase并部署云功能。 希望能奏效

这个对我有用! 谢谢。 😇

为我工作!谢谢

面对同样的问题

出口http_proxy = http://127.0.0.1:1087 ;出口https_proxy = http://127.0.0.1:1087 ;出口NO_PROXY = localhost,127.0.0.1

谢谢!

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址

WeChatd29e8b5b594f8cff963da7441b84fbc9

  1. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径
  2. 找到下面的代码,关于第276行
  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost
    有效

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址

WeChatd29e8b5b594f8cff963da7441b84fbc9

  1. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径
  2. 找到下面的代码,关于第276行
  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost
    有效

刚刚在Ubuntu 20.04上进行了测试,它就像一个魅力。 谢谢你的分享!

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址

WeChatd29e8b5b594f8cff963da7441b84fbc9

  1. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径
  2. 找到下面的代码,关于第276行
  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost
    有效

编辑代理并运行以下命令以自动修改库:
sed -i'/self.tunnel*/i \ \ self.proxy =“ http://192.168.219.7:9090 ”;' /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js

希望对你有帮助:
[email protected]
它适用于Win和Mac的ssr

  1. 找到您的代理地址

WeChatd29e8b5b594f8cff963da7441b84fbc9

  1. 在Firebase工具文件夹中打开“ request.js”文件。 对我来说,道路是
    /usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js
    使用“ npm root -g”找到您的全局npm路径
  2. 找到下面的代码,关于第276行
  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

更改为

  // if (!self.hasOwnProperty('proxy')) {
  //   self.proxy = getProxyFromURI(self.uri)
  // }
  self.proxy = "http://127.0.0.1:1087";  // this is your proxy address
  1. 使用Firebase登录--no-localhost

完成工作!!! 多谢!!!!!!🌷🌷🌷

此页面是否有帮助?
0 / 5 - 0 等级