firebase cloudfunction 古すぎてアップデートしないといけない(node10とfirebase-adminとかfirebase-functionとか)
firebaseがnode10を使う様になった
古いプロジェクトではまだnode6とか使ってたけど最近node10にしないといけないことがわかった。
あとcloud functionがなんか内部で使ってるapi?かなんかのbeta urlを使えない様にしたのでfirebase-adminとかもアップデートしないといけなくなった。
[Action Required] Upcoming changes to Cloud Functions for Firebase
ここに記載されてるバージョンよりも下ならおそらくパッケージでbetaのurl使ってるので死なない可能性もあるが、いつか爆死する可能性があるのであげないといけない。(これはもう実行されてるはずちょっと機嫌忘れた。)packageはアップデートできたけど、node10にするのがエラーはいて無理で環境変数がうまく読めなかった。
X_GOOGLE_PROJECTみたいな変数にprojectIdを入れて使ってたけど新しくなるとそれが使えないみたいだった。
エラーとしては環境変数が読み込めないだけっぽい。
ようわからん。
とりあえずすでにある環境変数から取得するのにおそらくX_GOOGLE_PROJECTで取得してて、それがGCLOUD_PROJECTに置き換わる?けど環境変数を自動で変えることができない。
けど一旦なおさんといけないから、
環境変数をセットすることで回避(できてるか知らんけど一応動いてそう)した。
環境変数はcloud functionから直接できなかったので--set-env-varsで入れたった。
gcloud functions deploy {firestore} --runtime=nodejs10 --trigger-topic={triggerTopic} --region=asia-northeast1 --entry-point={entryPoint} --set-env-vars GCLOUD_PROJECT={projectId}
で呼び出しでprocess.env.GCLOUD_PROJECTでいれれた。
const projectId = process.env.GCLOUD_PROJECT;
正直GCLOUD_PROJECTで入れる必要があるのかわからないし、projectIdとか直打ちでもいいのかもしれない(環境が複数あったので直打ちはめんどい)
そもそも、急に触るってなってやったので正直cloudfunctionよくわかってないからGCLOUD_PROJECTに入れることによって何がいいのかよくわからん。
あと一応動いてるって言ってるけど、
Warning, estimating Firebase Config based on GCLOUD_PROJECT. Initializing firebase-admin may fail
って出てるし、なんやねんこれ。
でもfirebase configとか使ってないんよなーようわからん。
今使ってるコードなんかをマルパクリしてるみたいやから、そのURL探して何したいのか知りたいな。なんかやってることはfirestoreのbackupっぽい。
firebase configに関しては謎。意味不。
一旦は動いてるから様子見(動かんくなったら詰み)