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