LoginSignup
6
1

More than 3 years have passed since last update.

Firestoreのドキュメントのフィールドに画像をBLOBで保存

Posted at

最近、FirebaseのCloudFirestoreを勉強中のエンジニアです。
Firestoreの保存形式にバイナリーBLOBが合ったので気になって試してみました。
CloudStorageを使うまでもない小さなサムネイルを保存するときに使うのかなと。

const fs = require("fs");
const firebase = require("firebase");

// 保存先のドキュメントの取得
const userRef = await db.doc('/users/' + UID);

// 保存する画像の読み込み
const icon = fs.readFileSync("icon.png");

// blobに変換
const blob = firebase.firestore.Blob.fromUint8Array(icon);
const img = {img : blob};
// firestoreに保存
await userRef.set(img, { merge: true }).catch(error => console.log(error));

// 下記は保存したデータの取得
const userSnapshot = await userRef.get();
const userImg = userSnapshot.data()['img'];
console.log(userImg.toBase64());

注意するべき点

Firestoreには1ドキュメント 1MiBの制限があるので、保存する画像のサイズは注意が必要です。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1