Firebase
CLI で後からサービスを追加する
init の引数に渡せばよい
$ firebase init [feature]
$ firebase init storage などすると storage.rules 置いてくれたりする
Timestamp
{ seconds: number nanoseconds: number}
firebase.firestore.Timestamp.fromDate(date: Date)
timestamp.toDate()
あたりか、アプリケーション全体で使う時刻オブジェクトにするかはなやましい
採番
docRef を作ったら id 取れる、docRef 作っただけではストアされないので便利
code:generateId.ts
import { firestore } from "../Firebase";
const doc1 = firestore.collection('sketch').doc();
const doc2 = firestore.collection('sketch').doc();
doc1.set({
fieldIncludesId: ${doc1.id}/key/to/file.json // Firebase Storage へのキーを入れておくとか
});
console.log(doc2.id); // ストアされないけど id はゲットできる
複数環境使う
プロジェクトを分ける
関数のデプロイに失敗したら
GCP のコンソールから見に行くと詳細わかったりする、わからないこともある
障害のとき全然デプロイできなかった
ignore しまくる
ビルドしてデプロイ、という感じだと不要なファイルのほうが多い
GCP の functions の console 眺めればアップロードされてるファイルが見れる
全部 ignore してホワイトリスト的に特定のファイル / ディレクトリだけ含める