Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase

LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase

このセッションのねらい

・LINEミニアプリ / LIFFアプリを作るときにFirebaseを選択肢に入れていただくこと
・Firebaseを使う場合の良い点・つらい点を抑えていただくこと

まとめ

Firebaseの良い点
・Firebaseは All in One
 ・自分でシステム構成を考えなくて良い
・Firebaseは認証が楽
 ・LINEミニアプリのめんどうな認証も突破できる
・Firebaseならリアルタイムにデータ更新
 ・Firebaseの一番の目玉機能。めちゃくちゃ楽できます。

Firebaseのつらい点
・ベンダーロックイン
 ・長い付き合いになる覚悟はしよう
・Firestoreはスキーマレス
 ・プロジェクトが大きくなったら、アプリケーションを工夫しよう
・コールドスタート(解決済み)
 ・お金で解決できるようになりました
・Emulatorが弱い(解決済み)
 ・最近ようやく、まともに動くようになりました

捧隆二

June 29, 2022
Tweet

More Decks by 捧隆二

Other Decks in Programming

Transcript

  1. Firebaseは All in One • Firebaseでシステム構築する時 1. システム構成は最初からできています 2. 使いたい機能を有効化します

    3. デプロイします Ø ⾃分でシステム構成を考えなくて良いし書かなくて良い 21
  2. Firebaseは All in One • Firebaseでシステム構築する時 1. システム構成は最初からできています 2. 使いたい機能を有効化します

    3. デプロイします Ø ⾃分でシステム構成を考えなくて良いし書かなくて良い 22 拡張性が気になる… 😅
  3. Firebaseは All in One • Firebaseでシステムを拡張したいとき • FirebaseはGCPの⼀員なのでGCPの 他のサービスと連携可能 23

    Firestore (DB) Cloud Functions Authentication Cloud Storage Hosting Google Cloud の他のサービス
  4. Firebaseは認証が楽 • LINEミニアプリは開発者にとって認証がたいへん 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 4.

    トークン検証 32 LINE ミニアプリ Server 1. 初期化 2. トークン取得 3. トークン送付 4. トークン検証
  5. Firebaseは認証が楽 • LINEミニアプリは開発者にとって認証がたいへん 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 4.

    トークン検証 5. 認証情報共有 33 LINE ミニアプリ Server 1. 初期化 2. トークン取得 3. トークン送付 4. トークン検証 5. 認証情報共有
  6. Firebaseは認証が楽 • LINEミニアプリは開発者にとって認証がたいへん 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 4.

    トークン検証 5. 認証情報共有 Ø ここが⼀番たいへん Ø 認証ライブラリが想定していない 34 LINE ミニアプリ Server 1. 初期化 2. トークン取得 3. トークン送付 4. トークン検証 5. 認証情報共有
  7. Firebaseは認証が楽 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付

    4. トークン検証 5. カスタムトークン作成 37 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成
  8. Firebaseは認証が楽 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付

    4. トークン検証 5. カスタムトークン作成 6. カスタムトークン取得 38 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成 6. トークン取得
  9. Firebaseは認証が楽 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付

    4. トークン検証 5. カスタムトークン作成 6. カスタムトークン取得 7. カスタムトークンで認証 39 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成 6. トークン取得 7. トークンで認証
  10. Firebaseは認証が楽 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付

    4. トークン検証 5. カスタムトークン作成 6. カスタムトークン取得 7. カスタムトークンで認証 • 詳細は記事参照 • https://qiita.com/Arahabica/items/8f5c7472ded92128535f 40 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成 6. トークン取得 7. トークンで認証
  11. ベンダーロックイン • Firestoreの挙動がかなり特殊 • ただ、NoSQLは基本的にそれぞれ特徴があって互換性なし Ø 覚悟して使うしかない • 余談 •

    Supabase • FirebaseのOSS代替を⾃称するプロダクト • “Supabase is an open source Firebase alternative.” • 実際はRDBベースでちょっと違いそう Ø 気になる⽅は調べてみてください 49
  12. コールドスタート(解決済み) 53 • Cloud Functions for Firebaseはコールドスタート • アクセスがないときにはサーバが停⽌ •

    初回アクセス時にはサーバの⽴ち上げに2秒ほどかかる • 最⼩インスタンスが設定可能に🎉 (2021/08) • 最⼩インスタンスを1に設定しておけば、常に1インスタンス起動 • ただ、その分コストはかかります
  13. エミュレーターが弱い • 開発中の動作確認・テストでいちいちデプロイするのは⾯倒 Ø Firebase Emulator Suiteを使う Ø ローカルで動くFirebaseのエミュレーター •

    Firebase Emulator Suiteの制限 • Firestoreの変更をトリガーにCloud Functionを実⾏できない • Firebase Authenticationを実⾏できない • Firebase Storageを実⾏できない • Firebase Extentionsを実⾏できない 55
  14. エミュレーターが弱い • 開発中の動作確認・テストでいちいちデプロイするのは⾯倒 Ø Firebase Emulator Suiteを使う Ø ローカルで動くFirebaseのエミュレーター •

    Firebase Emulator Suiteの制限 • Firestoreの変更をトリガーにCloud Functionを実⾏できる🎉 (2019/05 ~ ) • Firebase Authenticationを実⾏できない • Firebase Storageを実⾏できない • Firebase Extentionsを実⾏できない 56
  15. エミュレーターが弱い • 開発中の動作確認・テストでいちいちデプロイするのは⾯倒 Ø Firebase Emulator Suiteを使う Ø ローカルで動くFirebaseのエミュレーター •

    Firebase Emulator Suiteの制限 • Firestoreの変更をトリガーにCloud Functionを実⾏できる (2019/05 ~ ) • Firebase Authenticationを実⾏できる🎉 (2020/10 ~ ) • Firebase Storageを実⾏できない • Firebase Extentionsを実⾏できない 57
  16. エミュレーターが弱い • 開発中の動作確認・テストでいちいちデプロイするのは⾯倒 Ø Firebase Emulator Suiteを使う Ø ローカルで動くFirebaseのエミュレーター •

    Firebase Emulator Suiteの制限 • Firestoreの変更をトリガーにCloud Functionを実⾏できる (2019/05 ~ ) • Firebase Authenticationを実⾏できる (2020/10 ~ ) • Firebase Storageを実⾏できる🎉 (2021/05 ~ ) • Firebase Extentionsを実⾏できない 58
  17. エミュレーターが弱い • 開発中の動作確認・テストでいちいちデプロイするのは⾯倒 Ø Firebase Emulator Suiteを使う Ø ローカルで動くFirebaseのエミュレーター •

    Firebase Emulator Suiteの制限 • Firestoreの変更をトリガーにCloud Functionを実⾏できる (2019/05 ~ ) • Firebase Authenticationを実⾏できる (2020/10 ~ ) • Firebase Storageを実⾏できる (2021/05 ~ ) • Firebase Extentionsを実⾏できる🎉 (2022/05 ~ ) 59
  18. Emulatorが弱い(解決済み) • 開発中の動作確認・テストでいちいちデプロイするのは⾯倒 Ø Firebase Emulator Suiteを使う Ø ローカルで動くFirebaseのエミュレーター •

    Firebase Emulator Suiteの制限(解決済み) • Firestoreの変更をトリガーにCloud Functionを実⾏できる (2019/05 ~ ) • Firebase Authenticationを実⾏できる (2020/10 ~ ) • Firebase Storageを実⾏できる (2021/05 ~ ) • Firebase Extentionsを実⾏できる (2021/05 ~ ) 60
  19. Firebaseの良い点 • Firebaseは All in One Ø ⾃分でシステム構成を考えなくて良い • Firebaseは認証が楽

    Ø LINEミニアプリのめんどうな認証も突破できる • Firebaseならリアルタイムにデータ更新 Ø Firebaseの⼀番の⽬⽟機能。めちゃくちゃ楽できます。 62
  20. Firebaseのつらい点 • ベンダーロックイン Ø ⻑い付き合いになる覚悟はしよう • Firestoreはスキーマレス Ø プロジェクトが⼤きくなったら、アプリケーションを⼯夫しよう •

    コールドスタート(解決済み) Ø お⾦で解決できるようになりました • Emulatorが弱い(解決済み) Ø 最近ようやく、まともに動くようになりました 63