目次

前書き
本の想定読者層
免責事項
第1章 GoogleI/O 2022で発表されたFirebaseの新機能紹介
1.1 Firebase Extension
1.2 Firebase Hosting
1.3 Flutter
1.4 Firebase Clashlytics
1.5 Swift対応
1.6 AppCheck
1.7 Firebase App Distribution
1.8 Firebase Performance Monitoring
1.9 Crashlytics + Android
1.10 まとめと補足
第2章 Firebase Web SDK v8からv9への移行におけるFirestoreの実装比較
2.1 v9移行によるメリット
2.2 Initialize
2.3 Firestoreの実装比較
2.4 まとめと補足
第3章 FirestoreとStripeを使ったwebでのサブスクリプション購入実装例
3.1 Run Payments with Stripeセットアップ
3.2 AuthenticationとFirestoreのセットアップ
3.3 webhookの設定
3.4 カスタマーポータルの設定
3.5 税金の設定
3.6 商品の準備
3.7 Firestore側のインデックス作成
3.8 サンプルの下準備
3.9 サンプルを動かしてみる
3.10 まとめと補足
あとがき

前書き

 こんにちは。virapture株式会社(https://virapture.com)でCEOしながらラグナロク株式会社(https://ragna-rock.com)でもCKOとして働いている、もぐめっとと申します。この本をお手にとっていただき、誠にありがとうございます。急遽技術書展2022に参加を決めたため内容は荒々しいものになっておりますが、PDF版で随時改定していく予定なのでご容赦いただけると幸いです。この本では、普段私が発信しているFirebaseにまつわる情報で人気の高い情報を最新の2022年度版に改めて修正したものとなっております。精一杯まとめましたので、皆様のFirebaseライフのご参考になれば幸いです。

本の想定読者層

 この本の内容はFirebaseやFirestoreをある程度使用したことがある層に向けた内容になっているため、Firebaseへの経験がある前提で説明が簡略化されている箇所もございます。なるべくわかりやすいように記載しておりますが、ご容赦いただけると幸いです。

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

第1章 GoogleI/O 2022で発表されたFirebaseの新機能紹介

 毎年5月頃に行われるGoogle I/O。そこではGoogleに関する様々な内容が紹介されますが、Firebaseもたくさんの新機能が発表されました。この章では、2022年に紹介されたFirebaseの新機能を紹介します。

1.1 Firebase Extension

1.1.1 Stripe Extension

 Stripe Extensionを使って、サブスクリプションを使った場合の各種イベントを設定することができるようになりました。

図1.1: キャンセルを行う場合のイベント設定

 デモではCloud Functions v2で追加されたカスタムイベントトリガーを使うことによって、サブスクリプションをキャンセルしたときにキャンセルメールを送る実装例を紹介されました。

リスト1.1: カスタムトリガー実装例

import { onCustomEventPublished } from "firebase-functions/v2/eventarc";

export const func = onCustomEventPublished(
    {
        eventType: "firebase.extensions.storage-resize-images.v1.complete",
        channel: "locations/us-west1/channels/firebase",
        region: "us-west1",
    },
    (event) => {
        // do something
     });

リスト1.2: キャンセルメール実装例

import * as admin from "firebase-admin";
import { onCustomEventPublished } from "firebase-functions/v2/eventarc";

export const func = onCustomEventPublished(
    {
        eventType: "com.stripe.v1.customer.subscription.deleted",
    },
    (event) => {
        admin.firestore().collection('mail').add({
            to: getCustomerEmail(event),
            from: 'noreply@example.com',
            message: {
                subject: 'Title',
                html: '<h1>Hello!</h1>'
            }
        })
    });

1.1.2 Snapchatの拡張機能

 Snapchat (https://www.snap.com/) を使ったログインが実装され、ログイン後にSnapStoryに共有することで、ユーザが製品を友だちに勧めることができるようになりました。

 Authenticate with Snap Login Kit

 https://firebase.google.com/products/extensions/snap-snapchat-login

1.1.3 Stream Extension

 Stream (https://getstream.io/) を使ったログインと同期が行えるようになりました。Streamを使うことで、チャットを簡単に実装できるようになります。

 Authenticate with Stream Feeds

 https://firebase.google.com/products/extensions/stream-auth-activity-feeds

1.1.4 Typesense

 全文検索を可能にするOSSのTypesenseとFirestoreを連携できるExtensionが追加されました。

 Search Firestore with Typesense

 https://firebase.google.com/products/extensions/typesense-firestore-typesense-search

 今までよく紹介されていたalgoriaは、コストが高いことが問題でもありました。全文検索の選択肢としてTypesenseが公式に追加されたのは、スタートアップにとってとっても魅力的なアップデートになります。

1.1.5 RevenueCat

 アプリ内サブスクリプションの支払い実装を簡単にできるRevenueCat (https://www.revenuecat.com/) のExtensionが追加されました。これを使うことで、アプリのデジタル商品を簡単に販売することができるようになります。

 Enable In-App Purchases with RevenueCat

 https://firebase.google.com/products/extensions/revenuecat-firestore-revenuecat-purchases

1.1.6 一部の拡張機能がエミュレータに対応

 たとえば、firestore-send-emailがエミュレータで試したりすることができます。

リスト1.3: Extensionsインストールコマンド例

$ firebase ext:install --local firebase/firestore-send-email

 実際に実装を試してみたので、詳細は下記記事をご覧ください。

 https://qiita.com/mogmet/items/2fc9cf8bc5b151193fab

試し読みはここまでです。
この続きは、製品版でお楽しみください。