generated at
firestore


利点
スキーマレス
フルマネージド
オンデマンドインデックス
必要になったときにインデックスを貼るように要求してくる
インデックス貼ってる最中もパフォーマンスが落ちることはない
速い
安い


制約
主キー(id)には使えない文字列があるよ
/ とか . とか .. とか
ファイル名やURLを主キーにしようと思ってもできません
WHEREでANDはできるけどORはできないよ
WHEREで != はつかえないよ
field != null みたいなクエリはできません
default nullみたいな概念はないので自分でnullをつっこんでおかないと後でフィールドが空のドキュメントを探せないよ
WHEREで > , >= , <= , < のような範囲クエリはただ一つのフィールドにしか使えないよ
WHEREで範囲クエリを使った場合は、ORDER BYでもそのフィールドを指定する必要があるよ


所感
シンプルな要求のシステムならそこそこ使えるかもしれない
シンプルな仕様なので実装スピードも速くなる
複雑な要求仕様の場合、クエリの制約がかなり厳しい
GROUP BYとかはアプリケーション側で自力でやれみたいな気配
大規模なデータ分析などの用途にはまったく向かない
firestoreのデータをBigQueryにエクスポートできるらしいのでそっちでやれということなんだろう