Closed1

firebase-admin-sdkを使ってfirebase emulatorでstorageを扱う時にハマった件

Yamamoto Yuji / はまあYamamoto Yuji / はまあ

結論としていうと、firebase-admin-sdkを使ってemulator上のcloud functionsとかを動作させているとき。
admin.initializeApp()process.env.GOOGLE_APPLICATION_CREDENTIALSを使って初期化するナウい実装をしてるとハマる。
serverAccount.jsonをダウンロードしないでgcloud auth application-default loginするパターンですね)

ADCでcredentialsを取得してるとき、storageファイルにgetSignedUrlするとCaused by SigningError: Cannot sign data without 'client_email'.というエラーでコケる。
要はADCだとclient_emailという項目が無いので署名できないって事ですね。

本番のcloud functions上なら、そもそもサービスアカウント権限で実行されるはずなので、mockして逃げるのが吉。

このスクラップは5ヶ月前にクローズされました