Help us understand the problem. What is going on with this article?

firebase-toolsをproxy環境で使う

More than 1 year has passed since last update.

TL;DR

firebase-toolsは通信にnodefayeを使っているため,環境変数のhttp_proxyとかが使えない
fayeの通信部分にproxyなどをハードコードすれば通るらしいがハードコードはイケてない
fayeから環境変数のhttp_proxyを見て動的にProxy解決するように改造した

はじめに

Firebaseのチュートリアルどおりに,firebase login, firebase initと進めた後に,Cloud Functionsなどを
firebase deploy --only functions
でデプロイしようとしたら,Console上に何も表示されないままで固まる.
(せめてここでどんなErrorが起きてるか,とか出してくれればまだマシだった...)

foyeのclient.jsを改造

firebase-toolsをインストールしたときに,依存解決でインストールされるfirebaseモジュールが抱えるfoyeclient.jsを改造します.

firebase-tools自体は,自分の環境では
/usr/local/lib/node_modules/firebase-tools
にインストールされていました.

このfirebase-toolsがもつfirebaseモジュールの中のfoyeを ↓ のように改造します.

firebase-tools/node_modules/firebase/node_modules/foye-websocket/lib/foye/websocket/client.js
11 ...
12
13 var Client = function(_url, protocols, options) {
14   options = options || {};
15
 +   options.proxy = {
 +     headers: {'User-Agent': 'node'},  // User-Agentも設定しないと通信できませんでした
 +     origin: process.env.HTTP_PROXY    // HTTP_PROXYはProxy Host+Portをexportした環境変数
 +   }
16
17 ...

これで,Codeを環境毎に書き換えることなく,firebase-toolsからProxyを動的に解決してくれるようになりました.

情報元のStackOverflow

https://stackoverflow.com/questions/27098328/firebase-in-nodejs-with-http-proxy/28155536

---///

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした