-
Firebase Cloud Functionsで関数をモジュール分割しつつ、Cold Start対策も行う
Sunday, July 12, 2020
FirebaseのCloud Functionsを使って開発する上で、関数をモジュール分割して管理する方法やCold Start対策の方法を見たことがある/実践している方が多いかなと思います。 一方で、この2つを組み合わせて導入しようとするととても大変で、重複したコードが大量発生したり、今後新しい関数を追加する毎に記述コストが高くなったりする可能性がでてきます。 今回はそれぞれのテクニックの簡単な紹介と、その2つを組み合わせつつ、できる限りコードをクリーンに保つ方法を紹介します。 …
-
開発/本番環境でCloud Functionsのregionを切り替える
Monday, May 11, 2020
何かしらの事情(※) があり、Firebaseの開発環境と本番環境でそれぞれ異なるリージョンでCloud Functionsをデプロイしたい場合は、 以下のようにするとうまく切り替えることができます。 ※: 例えば開発環境のFirestoreのリージョンをマルチリージョンで作成し、本番環境では東京リージョンで作成してしまった、という具合に環境毎のDBのリージョンが異なり、それとFunctionsのリージョンを揃えたい場合など。 …
-
Cloud Firestoreで「いいね」機能を実装するときの勘所
Tuesday, December 31, 2019
何かしらのサービスを作る際に、ユーザー同士のコミュニケーションを促進させる機能の一つに、 TwitterやInstagramなどのサービスでおなじみの「いいね」機能があります。 機能としては 投稿等に「いいね」をつけることができる(♡だったり☆だったりシンボルは様々) 「いいね」がどれだけついたか、その数がわかる (最近だとInstagramがいいねの数の表示をなくしましたね🤔) 投稿等に「いいね」をしたユーザーの一覧が見れる 自分が「いいね」をした投稿等の一覧が見れる といったものが挙げられます。 このような機能ををFirebase、Cloud Firestore(以下Firestore) を使って実装する場合、 どのように実装するのか、どのような設計が良いのか、 逆にどのような設計だとまずいのか、セキュリティルールをどう書くべきか、、 深堀りして書いてみようと思います。やや長めの記事になります。 また、記事の後半でも改めてお伝えしますが、この記事で触れている内容は フォロー・フォロワー機能 友達機能 といった機能にも応用可能です。 …
-
Cloud FunctionsのCloud Firestoreトリガーの重複発火を防ぐ、より良いアプローチ
Monday, December 16, 2019
Cloud Functionsで、Cloud Firestoreトリガーを使う場合、「重複発火」に気をつけないといけません。 本来であれば、記述したCloud Functionsの処理は1回のトリガーで1回だけ実行されてほしいのですが…どういうわけか複数回呼び出されることがたまに起こります。 ちなみに、「少なくとも1回以上実行される可能性がある」ことと、「実行する関数自体は冪等性を担保して実装してね」とドキュメントには記載があります。 Cloud Firestore triggers#Limitations and guarantees 今回は重複発火が起こると困る例や、防ぐためのより良い方法を書いてみようと思います。 …
-
【改訂版】 Firebase Cloud Firestore rules tips
Tuesday, December 11, 2018
この記事はFirebase Advent Calendar 2018の12日目の記事です。 以前にCloud Firestore rules tipsを書いてから時間が経過したことと、その記事を書いてから僕自信もより理解を深めることができたので、改訂版としてこの記事を書きます。 …