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

最近のFirebase / Recent Firebase

k2wanko
February 02, 2019
1.4k

最近のFirebase / Recent Firebase

k2wanko

February 02, 2019
Tweet

More Decks by k2wanko

Transcript

  1. 最近のFirebase
    コキチーズ@k2wanko
    2019-02-02 GCPUG Fukuoka 「Firebase」特集

    View Slide

  2. コキチーズ@k2wanko
    - LINEでセキュリティエンジニアをやっている。
    (本業はあんまりFirebase関係ない)
    - Firebase Japan User Groupのオーガナイザーと
    GCPUG TokyoのStaffをやっている。
    - 得意分野はWebとAndroidとGCPとGo

    View Slide

  3. とは?

    View Slide

  4. helps mobile app
    teams succeed.

    View Slide

  5. モバイルアプリチームの
    成功を支援します。

    View Slide

  6. つまり、モバイルアプリの作成を
    助けてくれるプラットフォーム

    View Slide

  7. 基本的にクライアントアプリだけで
    開発が可能
    サーバーをメンテナンスする必要はない

    View Slide

  8. 対応プラットフォーム

    View Slide

  9. 基本的にはクライアントだけで
    アプリが作れちゃう

    View Slide

  10. でも、サーバーが必要なときもある

    View Slide

  11. サーバーでFirebaseを操作するSDKが
    Admin SDK

    View Slide

  12. Admin SDK対応言語

    View Slide

  13. いくつかのクライアントコードやSDKはOSSで提供されている。
    https://github.com/firebase

    View Slide

  14. FirebaseのProduct達

    View Slide

  15. 始めるだけならまずはここから

    View Slide

  16. Google Analytics for Firebase

    View Slide

  17. Google Analytics for Firebaseとは
    - 無料で使えるモバイル向けのアナリティクスサービス。
    - イベントをベースに分析ができる。
    - データはBigQueryにエクスポートできる。
    - 予め用意されているイベント以外にも、
    独自にイベントを定義できる。
    - Audienceを作成することで、
    特定の行動をしたユーザーをグループ化できる。

    View Slide

  18. What’s New
    - Audience Exclusions
    - Membership Duration
    https://firebase.googleblog.com/2019/01/a-crash-course-in-using-new-audiences.html

    View Slide

  19. Google アナリティクス SDK終了
    - 2019 年10月に、Android と iOS 向けの Google ア
    ナリティクス開発者サービス SDK が終了
    - 移行先はFirebaseへ
    - 有料版のGoogle アナリティクス 360 は影響なし
    https://support.google.com/analytics/answer/9167112?hl=ja

    View Slide

  20. Cloud Functions for Firebase

    View Slide

  21. Cloud Functions for Firebaseとは
    - イベント駆動で独自の関数を実行できるサービス
    - 受け取れるイベントはPubSubやHTTPやFirebaseのほとんど
    のサービスのイベントを取れる
    - Firebaseが標準でサポートしているのはNode.jsだけ
    - GCP経由のCloud FunctionsでもFirestoreや
    Realtime DB、Analyticsのイベントも受け取れる。
    - `gcloud functions event-types list` で確認できる。

    View Slide

  22. What’s New
    - Firebase Management API
    - Go Support (Firebaseというわけではない)

    View Slide

  23. かなり実践的なサンプルがいっぱいあるのでオススメ
    https://github.com/firebase/functions-samples

    View Slide

  24. Firebase Authentication

    View Slide

  25. Firebase Authenticationとは
    - パスワード認証からGoogle、Twitterのような
    プロバイダー認証にSMS認証など色々サポートしてる。
    - 対応してない認証もカスタム認証を利用して
    Firebaseユーザーにできる。

    View Slide

  26. What’s New
    - Cloud Identity for Customers and Partners
    https://cloud.google.com/identity-cp/
    - SAML認証とかOIDCとかもサポートされた。

    View Slide

  27. Firebase Hosting

    View Slide

  28. Firebase Hosting
    - 静的なファイルを配信するためのホスティングサービス
    - 標準でHTTP2で配信してくれる。
    - Cloud Functionsを接続することで
    動的なコンテンツ配信も可能

    View Slide

  29. What’s New
    - 複数サイトを1つのプロジェクトで管理できる。
    (そんなに新しくはないけど...)

    View Slide

  30. Firebase Cloud Messaging

    View Slide

  31. Firebase Cloud Messaging とは
    - Push通知を送れるサービス
    - モバイルだけじゃなくてWebにも対応している。
    - トピックという機能を使えば、
    サブスクライブしているユーザーにだけ送るもできる。

    View Slide

  32. What’s New
    - スケジューリングをPush通知が設定できるようになった
    毎日決まったメッセージを送ることが可能

    View Slide

  33. GCMの終了
    - 2019 年 4月11日にGCMが終了するので、
    - 古いSDKやエンドポイント使ってたらFCMへ移行が必要
    https://developers-jp.googleblog.com/2018/04/time-to-upgrade-from-gcm-to-fcm.html

    View Slide

  34. Cloud Firestore

    View Slide

  35. Cloud Firestore とは
    - リアルタイムにデータを同期できる
    分散NoSQLデータベース
    - クエリーの全ては強い整合性
    - クライアントから直接書き込めるし
    オフラインでも書き込みができる。
    - 書き込み、読み込みの制限はセキュリティルールで担保

    View Slide

  36. Firestoreの基本概念

    View Slide

  37. サブコレクション /user/user1/profile/user1
    user
    user1
    user2
    post
    post1
    post2

    View Slide

  38. What’s New
    - GA SLA 99.999%
    - 値下げ
    - usリージョンよりも東京リージョンのが安い
    - https://cloud.google.com/firestore/pricing#pricing_update
    - ローカルエミュレーター

    View Slide

  39. ローカルエミュレーターについてはブログを書いたのでそっち
    を見てください。https://goo.gl/SGbE7t

    View Slide

  40. セキュリティルールについて
    - クライアントから直接書き込めるFirestoreで、
    データを保護するにはセキュリティルールで行う
    - セキュリティルールはJavaScriptっぽい独自構文
    - テストモードとか使わず最初っから書きながら作るべき

    View Slide

  41. Firestoreのセキュリティルールの基本
    service cloud.firestore {
    match /databases/{database}/documents {
    match /{document=**} {
    allow read, write: if request.auth.uid != null;
    }
    }
    }
    認証しているユーザーのみに読み書きをさせる。

    View Slide

  42. Firestoreのセキュリティルールの基本
    read
    - get
    - list
    write
    - create
    - update
    - delete

    View Slide

  43. 認証、スキーマバリデーション、ビジネスロジックの
    順で検証していく
    Authorization
    Scheme
    Validation
    Business
    Logic

    View Slide

  44. 具体的なコードはこのTwitterみたいなタイムラインのデモを見てね
    https://github.com/k2wanko/fire-timeline

    View Slide

  45. Realtime DBとの使い分け
    - ほとんどの場合はFirestoreでOK
    - 少ないデータを頻繁にアップデートする用途になら
    RealtimeDBのが安いこともある。
    - 前まではRealtime DBはGAで安定してるとあったが、
    FirestoreもGAになり、その優位性もなくなった。
    - ユーザーがオフラインになったことを検知したい場合

    View Slide

  46. Firestoreは
    GAなのだからガンガン使っていこう!

    View Slide

  47. よりFirebaseを知るには

    View Slide

  48. 公式ドキュメントを一通り見ておく
    全部を隅々まで把握する必要はないけど
    どんなサービスがあるかは把握しておいたほうが必要な時に気づ
    ける。
    https://firebase.google.com/docs/

    View Slide

  49. わからないことはサポートに問い合わせをしてみる
    無料でも日本語で質問することができる。
    より具体的なサポートが欲しい場合は有料のサポートもある。
    https://firebase.google.com/support/contact/

    View Slide

  50. コミュニティに参加してみる
    Firebaseのコミュニティに参加してみて、
    Firebaseの最新情報や話題をキャッチアップ
    https://firebase.asia/

    View Slide

  51. https://cast.firebase.asia/

    View Slide

  52. https://www.youtube.com/channel/UCpvejDfNX4DOhuqlmCPiFfQ

    View Slide

  53. Question?

    View Slide

  54. Thank you
    @k2wanko

    View Slide