https://gcpugfukuoka.connpass.com/event/114665/
最近のFirebaseコキチーズ@k2wanko2019-02-02 GCPUG Fukuoka 「Firebase」特集
View Slide
コキチーズ@k2wanko- LINEでセキュリティエンジニアをやっている。(本業はあんまりFirebase関係ない)- Firebase Japan User GroupのオーガナイザーとGCPUG TokyoのStaffをやっている。- 得意分野はWebとAndroidとGCPとGo
とは?
helps mobile appteams succeed.
モバイルアプリチームの成功を支援します。
つまり、モバイルアプリの作成を助けてくれるプラットフォーム
基本的にクライアントアプリだけで開発が可能サーバーをメンテナンスする必要はない
対応プラットフォーム
基本的にはクライアントだけでアプリが作れちゃう
でも、サーバーが必要なときもある
サーバーでFirebaseを操作するSDKがAdmin SDK
Admin SDK対応言語
いくつかのクライアントコードやSDKはOSSで提供されている。https://github.com/firebase
FirebaseのProduct達
始めるだけならまずはここから
Google Analytics for Firebase
Google Analytics for Firebaseとは- 無料で使えるモバイル向けのアナリティクスサービス。- イベントをベースに分析ができる。- データはBigQueryにエクスポートできる。- 予め用意されているイベント以外にも、独自にイベントを定義できる。- Audienceを作成することで、特定の行動をしたユーザーをグループ化できる。
What’s New- Audience Exclusions- Membership Durationhttps://firebase.googleblog.com/2019/01/a-crash-course-in-using-new-audiences.html
Google アナリティクス SDK終了- 2019 年10月に、Android と iOS 向けの Google アナリティクス開発者サービス SDK が終了- 移行先はFirebaseへ- 有料版のGoogle アナリティクス 360 は影響なしhttps://support.google.com/analytics/answer/9167112?hl=ja
Cloud Functions for Firebase
Cloud Functions for Firebaseとは- イベント駆動で独自の関数を実行できるサービス- 受け取れるイベントはPubSubやHTTPやFirebaseのほとんどのサービスのイベントを取れる- Firebaseが標準でサポートしているのはNode.jsだけ- GCP経由のCloud FunctionsでもFirestoreやRealtime DB、Analyticsのイベントも受け取れる。- `gcloud functions event-types list` で確認できる。
What’s New- Firebase Management API- Go Support (Firebaseというわけではない)
かなり実践的なサンプルがいっぱいあるのでオススメhttps://github.com/firebase/functions-samples
Firebase Authentication
Firebase Authenticationとは- パスワード認証からGoogle、Twitterのようなプロバイダー認証にSMS認証など色々サポートしてる。- 対応してない認証もカスタム認証を利用してFirebaseユーザーにできる。
What’s New- Cloud Identity for Customers and Partnershttps://cloud.google.com/identity-cp/- SAML認証とかOIDCとかもサポートされた。
Firebase Hosting
Firebase Hosting- 静的なファイルを配信するためのホスティングサービス- 標準でHTTP2で配信してくれる。- Cloud Functionsを接続することで動的なコンテンツ配信も可能
What’s New- 複数サイトを1つのプロジェクトで管理できる。(そんなに新しくはないけど...)
Firebase Cloud Messaging
Firebase Cloud Messaging とは- Push通知を送れるサービス- モバイルだけじゃなくてWebにも対応している。- トピックという機能を使えば、サブスクライブしているユーザーにだけ送るもできる。
What’s New- スケジューリングをPush通知が設定できるようになった毎日決まったメッセージを送ることが可能
GCMの終了- 2019 年 4月11日にGCMが終了するので、- 古いSDKやエンドポイント使ってたらFCMへ移行が必要https://developers-jp.googleblog.com/2018/04/time-to-upgrade-from-gcm-to-fcm.html
Cloud Firestore
Cloud Firestore とは- リアルタイムにデータを同期できる分散NoSQLデータベース- クエリーの全ては強い整合性- クライアントから直接書き込めるしオフラインでも書き込みができる。- 書き込み、読み込みの制限はセキュリティルールで担保
Firestoreの基本概念
サブコレクション /user/user1/profile/user1useruser1user2postpost1post2
What’s New- GA SLA 99.999%- 値下げ- usリージョンよりも東京リージョンのが安い- https://cloud.google.com/firestore/pricing#pricing_update- ローカルエミュレーター
ローカルエミュレーターについてはブログを書いたのでそっちを見てください。https://goo.gl/SGbE7t
セキュリティルールについて- クライアントから直接書き込めるFirestoreで、データを保護するにはセキュリティルールで行う- セキュリティルールはJavaScriptっぽい独自構文- テストモードとか使わず最初っから書きながら作るべき
Firestoreのセキュリティルールの基本service cloud.firestore {match /databases/{database}/documents {match /{document=**} {allow read, write: if request.auth.uid != null;}}}認証しているユーザーのみに読み書きをさせる。
Firestoreのセキュリティルールの基本read- get- listwrite- create- update- delete
認証、スキーマバリデーション、ビジネスロジックの順で検証していくAuthorizationSchemeValidationBusinessLogic
具体的なコードはこのTwitterみたいなタイムラインのデモを見てねhttps://github.com/k2wanko/fire-timeline
Realtime DBとの使い分け- ほとんどの場合はFirestoreでOK- 少ないデータを頻繁にアップデートする用途にならRealtimeDBのが安いこともある。- 前まではRealtime DBはGAで安定してるとあったが、FirestoreもGAになり、その優位性もなくなった。- ユーザーがオフラインになったことを検知したい場合
FirestoreはGAなのだからガンガン使っていこう!
よりFirebaseを知るには
公式ドキュメントを一通り見ておく全部を隅々まで把握する必要はないけどどんなサービスがあるかは把握しておいたほうが必要な時に気づける。https://firebase.google.com/docs/
わからないことはサポートに問い合わせをしてみる無料でも日本語で質問することができる。より具体的なサポートが欲しい場合は有料のサポートもある。https://firebase.google.com/support/contact/
コミュニティに参加してみるFirebaseのコミュニティに参加してみて、Firebaseの最新情報や話題をキャッチアップhttps://firebase.asia/
https://cast.firebase.asia/
https://www.youtube.com/channel/UCpvejDfNX4DOhuqlmCPiFfQ
Question?
Thank you@k2wanko