LoginSignup
7
5

More than 5 years have passed since last update.

Firebaseにおける軽量ファイル保存 - Cloud Firestore vs Cloud Storage

Posted at

最近、趣味でFirebaseを使ったwebサービス開発を行っています。
現在は、軽量のファイルをアップロードし、ユーザー間で共有するwebサービスを開発中です。

数KBの軽量テキストの場合、データベースであるCloud FirestoreとストレージサービスであるCloud Storageのどちらを利用するべきか迷ったため、調査を行いました。

想定

  • Firebaseの無料プラン
  • 1ファイルのサイズの平均は5KB程度
  • 月間のアクセス数は5000程度
  • 多少のwrite/read制御が必要(自分のファイルは更新できる、他人のファイルは閲覧できる)

比較

表にまとめると以下のようになりました。

Firestore Storage
容量 1GB 5GB
1ファイルの容量 1MiB(binary, string) 本家は5TB
帯域幅 10GB/月
write 2万/日 2万/日
read 5万/日 5万/日
delete 2万/日 writeに含まれる?
アクセス制御 認証と連動可 認証と連動可
サイズ制限 自前で実装 可能
暗号化 デフォルトで有効 デフォルトで有効
複数取得 不可

以下で詳細を見ていきたいと思います。

総容量

無料プランでは、firestoreが1GB、storageが5GBとなっています。

まあ、軽量テキストなら1GBでも十分かな?

1ファイルの容量

firestoreが1MiB、storageは(おそらく)5TBです。

firestoreの方をもう少し詳細に述べると、以下のようになります。

  • 1ドキュメントのサイズが1MiB未満(ドキュメント = DBのレコード相当)
  • string、binary属性は最大1MiBまで
  • 1つのドキュメントは複数の属性を持てる

想定ファイルがサイズ以内ならどちらでもよさそうです。

write/read/delete

おそらく大差はなさそうです。
後述の複数取得を行ったとしても、最終的にドキュメント(DBのレコードのようなもの)単位でカウントなので、結局取得するファイルの数だけ、read回数を消費することになりそうです。

アクセス制限

どちらでもユーザーでの認識等は可能なようです。

firestoreの方が属性に含まれるユーザーIDで制御できるので、storageよりっも細かい制御が実施できる印象です。

暗号化

簡単な利用の場合は、差はなさそうです。

複数取得

当然ですが、firestoreの場合はデータベースなので、属性等による検索が実施できます。

まとめ

firestoreでも軽量なファイル(1MiB未満)であれば十分に格納できそうです。

勉強も兼ねて開発中のサービスではfirestoreを採用してみます。

参考

Firebase のガイド
Firebase のプライバシーとセキュリティ

7
5
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
7
5