これと公式ドキュメントを見れば実装できた。
起きた問題
現在開発しているプロジェクトでは、Cloud FunctionsからCloud Storageに画像をアップロードする処理を行っているのだが、Storageに対してApp Checkを有効にする場合ファイルに対するアクセストークンが無いと拒否されてしまう。
そのため、
これを見て
await bucket.file(thumbnailPath).setMetadata({
metadata: {
firebaseStorageDownloadTokens: uuid,
// ...
},
});
このようにした。
作成しておいたuuidをURLに含めてFirestoreに保存すればしっかりアクセスできる。
トークン無しでアクセスすると
{
"error": {
"code": 401,
"message": "Firebase App Check token is invalid."
}
}
このようなエラーが表示され、しっかりApp Checkが働いていることが分かる。
攻撃に怯えて作ったプロジェクトを公開できないのもどうかと思ったので少しセキュリティ周りについて調べているが、どこまでやればいいのかとか、どのようなものを防げているのかよくわかっていない。
すごくふんわりしている。