Closed2

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
https://cloud.google.com/compute/docs/migrating-to-v1-metadata-server#supported-google-libraries
ここに記載されてるバージョンよりも下ならおそらくパッケージでbetaのurl使ってるので死なない可能性もあるが、いつか爆死する可能性があるのであげないといけない。(これはもう実行されてるはずちょっと機嫌忘れた。)

packageはアップデートできたけど、node10にするのがエラーはいて無理で環境変数がうまく読めなかった。

X_GOOGLE_PROJECTみたいな変数にprojectIdを入れて使ってたけど新しくなるとそれが使えないみたいだった。
エラーとしては環境変数が読み込めないだけっぽい。
https://github.com/firebase/firebase-functions/issues/433
https://github.com/firebase/firebase-functions/issues/437#issuecomment-510269750
ようわからん。
とりあえずすでにある環境変数から取得するのにおそらく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
って出てるし、なんやねんこれ。
https://github.com/firebase/firebase-functions/issues/437#issuecomment-670531985
でもfirebase configとか使ってないんよなーようわからん。

はるかはるか

今使ってるコードなんかをマルパクリしてるみたいやから、そのURL探して何したいのか知りたいな。なんかやってることはfirestoreのbackupっぽい。

firebase configに関しては謎。意味不。

一旦は動いてるから様子見(動かんくなったら詰み)

このスクラップは2021/03/26にクローズされました