ほぼ日刊サービス開発日誌

React, firebase, 機械学習など

sponsored

firebase について最初から知っておきたかった細かいポイント(cloud function, firestore)

firestore: set({params,merge:true})update()のちがい

mergeオプションのあるset()は、ドキュメントが存在しなければ作成するし、存在すれば更新する。mergeオプションがないとすべてを上書きする。

updateは、対象ドキュメントが存在しない場合、エラーになる。存在する場合、指定したフィールドだけが更新され、それ以外は上書きされない。

cloud function: イベントハンドラを①つ以上登録していないと実行されない。

つまり index.jsに

console.log('hello')

とだけ書いてデプロイしてもログに出てこない。

onCreate ...とかサポートされているイベントタイプでトリガーされる関数を記述しないとindex.jsが実行されない。

Firebase Analyticsはモバイル向けだけである

Google analyticsを使えと言われる。

web applications - How can i use the NEW Firebase Analytics feature with a webapp? - Stack Overflow

firestore: orderBy().where(). みたいなクエリはインデックスを貼る設定をコンソールでやらないと動かない

コンソールをよく読むと

FAILED_PRECONDITION: The query requires an index. You can create it here: ...

みたいなアラート文章とともに、設定URLが出ている。そのままクリックすると、対象クエリのインデックスを作成する画面に自動で飛ばしてくれるので便利。

java - Firestore whereEqualTo, orderBy and limit(1) not working - Stack Overflow

cloud function: The behavior for Date objects stored in Firestore is going to change AND YOUR APP MAY BREAK. というエラーメッセージが出る

cloud firestoreに保存され、実行されるtimestamp はjavascriptデフォルトのDateオブジェクトとしてではなくFirebase Timestamp objectsという形で解釈されることに対する警告。

admin.firestore().settings({timestampsInSnapshots: true}) で消える