Firebaseってどんな感じ?Firestoreを仕事で一ヶ月使ってみた感想

仕事でFirebaseを使う機会があり、ここ一ヶ月以上Firebaseを使っていたので感想を書きたいと思います。

使っていたのはFirebaseのfirestoreというデータベース。

スポンサーリンク

よかったこと

使ってみたよかったことですが、サーバーレスなところが一番ですかね。

サーバー上のDBからデータ取りたい時はAPI作る必要があるのですが、Firebaseを使えばそれがいらないです。

サブコレクションが優秀

RDBのようにjoinの概念がないです。

firestoreの場合、関連データを作る時、サブコレクションと言いドキュメントに中にコレクションを配置することが出来ます。

これのおかげででかいjsonオブジェクトを触るイメージで扱えます。

スポンサーリンク

悪かったこと

クエリが微妙

クエリが弱いです。

Like検索できない、whereで!=ができないなど

「え、これ使えないの?」

ってのが結構あります。

Like検索を使う場合は、検索用のサードパーティを使う必要があるみたいです。

https://firebase.google.com/docs/firestore/solutions/search?hl=ja

 

複数コレクションのトランザクションがめんどくさい

なかなかめんどくさいです。

トランザクションを楽にするライブラリがないだけですが、

RDBを使う他のフレームワークにあるトランザクションは

transaction.start do
#ここにクエリを書く
end

こんな感じでまとめるだけで出来ますが、firebaseの場合めんどくさいです。

複数コレクションでトランザクションを使う日本語記事がなかったので、その内書いて公開しておきます。

書きました

【Firebase】Firestoreで複数collectionの更新にトランザクションを使う

 

orderbyするためにはindexを貼る必要がある

whereしたフィールドとorderByするフィールドのindexを貼らないとエラーが出ます。

論理削除する予定だったので、以下のコードを書いてたのですが、すべてのドキュメントにindex貼る必要がありました。

where(“deleted”, “==”, false)

 

スポンサーリンク

まとめ

こんな感じで、Firebaseの良いところと悪いところでした。

意外と出来ないことが多く、サーバーサイドエンジニアとしてもどかしく感じます。

プロトタイプを作る程度であればFirebaseはかなり良いと思いますが、メインDBにするにはちょっと微妙かな〜というイメージでした。

悪いところ多めになってしまいましたが、Firebaseはまだ発展途上です。

これからどんどん機能が増えたりライブラリが増えたりしていきそうなのでこれからに期待です。