firestore
利点
スキーマレス
フルマネージド
オンデマンドインデックス
必要になったときにインデックスを貼るように要求してくる
インデックス貼ってる最中もパフォーマンスが落ちることはない
速い
安い
制約
主キー(id)には使えない文字列があるよ
/
とか .
とか ..
とか
ファイル名やURLを主キーにしようと思ってもできません
WHEREでANDはできるけどORはできないよ
WHEREで !=
はつかえないよ
field != null
みたいなクエリはできません
default nullみたいな概念はないので自分でnullをつっこんでおかないと後でフィールドが空のドキュメントを探せないよ
WHEREで >
, >=
, <=
, <
のような範囲クエリはただ一つのフィールドにしか使えないよ
WHEREで範囲クエリを使った場合は、ORDER BYでもそのフィールドを指定する必要があるよ
所感
シンプルな要求のシステムならそこそこ使えるかもしれない
シンプルな仕様なので実装スピードも速くなる
複雑な要求仕様の場合、クエリの制約がかなり厳しい
GROUP BYとかはアプリケーション側で自力でやれみたいな気配
大規模なデータ分析などの用途にはまったく向かない
firestoreのデータをBigQueryにエクスポートできるらしいのでそっちでやれということなんだろう