Open4

サーバーサイドNoSQLとして見るfirestore

terrierscriptterrierscript

普通のfirestore

  • 基本的にクライアントから使われることが前提っぽい作り
  • 安全に使うためにはちゃんとルール設定が必要
    • これをちゃんと扱うのが結構気を使う
terrierscriptterrierscript

firestoreをサーバサイドで使う

  • 基本的にfirebase-adminを中心に使う事になる
  • BigQuery連携
  • RDBよりイニシャルコストが安い
  • インデックスがあったり条件句もそこそこあるのでRDBっぽい使い方しても苦痛が薄い
    • トランザクションっぽいのもある程度はできる
  • Googleがやってるしそんなに潰れたり売られたりしないだろうという安心感
    • Parse.comを忘れない
    • planetscaleとかMySQLでデータアクセスAPIがなければこの辺はそこまで気にしなくて良いのかも
  • DynamoDBと比べると好きなところ
    • インデックス貼るのが楽
    • テーブル作らなくて良い(DynamoDBはテーブルは少ないほどよいと言ってるけど、現実無理じゃんという感じする)
    • 一回の処理あたり25件みたいなのがdynamodbは辛い
terrierscriptterrierscript

firestoreをサーバサイドで使う課題

  • firestore-adminが逆にルール設定出来なすぎてガバガバすぎる
  • 削除がGUIから気軽に出来すぎる。フィルタの隣に削除ボタンがあるのめっちゃ怖い
  • パフォーマンスはそんなに良くない
  • 制限とか見てると割と引っかかりそうな気配を感じたり
terrierscriptterrierscript

RDBと比べて

いいこと

  • 安い
    • 特にイニシャルコスト
  • マイグレーションがいらない

出来ないこと

  • JOIN
  • 複雑なwhere句
    • start < time AND end > timeぐらいなとこからできなくなるとか