はじめに
Firebase Storage を使う機会があって、メタデータをセットする必要があったのですが、サーバー側から利用する Firebase Admin SDK 経由のセット方法の記事が全然ヒットしなかったので、備忘録として残しておきます。
本題
Firebase にアクセスする方法は2通りあります。
今回は、Firebase Admin SDK 経由のセット方法を記述します
名称 | 場所 | 内容 |
---|---|---|
Firebase SDK | クライアント | ユーザー側が利用する SDK |
Firebase Admin SDK | サーバー | 管理者側が利用する SDK |
コード
Node.js のサンプルコードです。
FIREBASE_CREDENTIALS と STORAGE_BUCKET は、適切に設定してください。
import { cert, initializeApp } from 'firebase-admin/app';
import { getStorage } from 'firebase-admin/storage';
import fs from 'fs/promises';
initializeApp({
credential: cert(FIREBASE_CREDENTIALS),
storageBucket: STORAGE_BUCKET
});
const bucket = getStorage().bucket();
const data = await fs.readFile("path/to/source/image.png");
const file = bucket.file("path/to/destination/image.png");
await file.save(data);
file.setMetadata({
contentType: 'image/png',
metadata: {
custom1: 'value1',
custom2: 'value2'
}
});
実行結果

参考
https://googleapis.dev/nodejs/storage/latest/File.html#setMetadata