Closed1
firebase-admin-sdkを使ってfirebase emulatorでstorageを扱う時にハマった件
結論としていうと、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ヶ月前にクローズされました