Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

とは?

Slide 4

Slide 4 text

helps mobile app teams succeed.

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

対応プラットフォーム

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Admin SDK対応言語

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

FirebaseのProduct達

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Google Analytics for Firebase

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Cloud Functions for Firebase

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Firebase Authentication

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Firebase Hosting

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Firebase Cloud Messaging

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

Cloud Firestore

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Firestoreの基本概念

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

よりFirebaseを知るには

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

https://cast.firebase.asia/

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

Question?

Slide 54

Slide 54 text

Thank you @k2wanko