firebase-community.connpass.com
Firebase Meetup #4に行ってきた。BLOG枠での参加。なかなか盛り上がっていた。
他のBLOG枠のsu-さんの記事はこちら。
Firestoreのセキュリティルールについて (Web) @k2wanko
Firebase利用企業の62%がDBのセキュリティルールにミスがあり機密情報が公開されている。その中でセキュリティルール周りの知見の共有だった。
Realtime Database(以下RTDB)、Firestore、Storageでセキュリティルールという概念が出てくる。
- RTDB
みたいな雑感。
Boltを使うと、RTDB用のjsonを吐き出してくれるし、TypeScriptのような型定義で便利。ただ、完全に信じるのは危険かも...。
Cloud Strorage
Firestore
protobug-rules-gen
- protocol bufferの定義から型検査をしてくれる。セキュリティルールを生成するプラグイン
開発時はどうしても後回しにしてしまう部分をしっかり説明されていて、非常に参考になる内容だった。
Firebaseを使ってプッシュ通知基盤を作ったときにハマったところ、よかったところ y.danno
アプリのリニューアル検討、Parseが2017/1/28に終了等の理由によりプッシュ通知基盤をFirebaseに移行した時のお話。
もともとはFirebase Notificationsを利用していたそうだが、送り先はifとかで決めるところがマーケティングチームがやるには厳しい、とかマニュアルではきついといった理由もあり、Firebase Cloud Messaging + αでプッシュ基盤を作成した。
Firebase Notificationsで Topic or FCM??
問題については遅延なく送信し、届いたかどうかを取得するためにはFCMでやる必要があったそう。FCMトークンの管理そのものをどうするか、という問題もあり苦労したとのこと。Firestoreでお気に入りしたかどうかの情報を保持してそれをもとにプッシュの送信先を決めるようにしている。
プッシュ送信にはAppEngineを利用し、20万件ずつ送ったがいい感じにスケールアウトしてくれたのも良かったということだった。
今後はWeb Pushやリコメンド、緊急速報、ライブ動画のコメントあたりをFirebaseを使って解決していきたいという話だった。
Growth product @1amageek
Firebaseを使いこなせるエンジニアがひっきりなしになる時代がくる。
— nori (@1amageek) 2018年6月26日
現在のフルスタックエンジニアよりももっと価値が高い。なぜならRailsを書くよりも圧倒的に早くサービスを立ち上げる事が出来るから、このスキルを持つエンジニアの相場は国内で年収800万円~1000万円くらいになるだろう。
なんで今からFirebaseなの、というテーマでの発表。
Internet普及率がここ20年強で9.2%から83.5%になっており、その間、AWSやGCPのAppengineなどは、Scaleを支えるサービスを作ってきた。今後は新しいサービスを作る時代だ、ということ。
プロダクトとはコンテンツ であり、コンテンツのIN/OUTの最適化がうまくできているかどうかが重要になってくる。エンジニアリングとマーケティングはそこのIN/OUTのPDCAの高速化が求められる。
Firebaseの開発速度は破壊的でそれをライブコーディングで実演された。
インスタみたいに画像をライブラリから選択してアップロードするDEMOアプリを見せてくれたが、Xcodeでソースコードを開くと、おもむろに利用しているViewControllerとかStoryboardを削除しはじめる @1amageek さん。そして、5分たらずでFileのアップロードやデータの取得、その描画をライブで実装していた。とにかく早い。AWSや既存のREST APIを作るスタイルであれば一人で半日はかかると思われるコードもものの数分だった。
Firebaseは作っては壊す、に非常に向いている とのこと。
Quickstart-android/MLKitについて @yamacraft
MLKitを動かすために公式サンプルが行っていることの解説をされていた。
- カメラの制御
- onPreviewFrameでプレビュー画面のBufferをFirebaseVisionFaceDetectorに流し込み
- その結果をもとにプレビュー画面に結果をオーバーレイ
MLKitの部分は簡単だが、サンプルコードのほとんどがカメラの制御になっている...!!カメラのデータをVision APIに送り続けるとか、受け取ったデータをプレビューに表示し続けるのが結構手強いらしい。
Firebase Authenticationで色々使ってみた @teyosh
ユーザ管理は以下のようにプロパティがある
- uid
- display name
- phoneNumber
- photoURL
対応プロバイダ・方式は以下の通り。
loginしたuserとcredentialのヒモ付が簡単で user.linkAndRetrieveData(with: credential)
でいける。メールの更新等も user.reauthenticateAndRetrieveData(with: credential)
でいける。
Firestoreをもっと手軽に使えるfirestore-simpleを作った @Kesin11
APIが言語によらずだいたい同じだが、汎用化してライブラリ作ったほうがもっと気持ちよくかけるよね、という動機でライブラリを作られたそう。
以下のようなツラミが開発していてあったそう。
- 素のFirestoreは毎回コレクションへのパスを書くのはめんどくさいので、自分でコレクションごとのモデルを作るか
- FirestoreではQuerySnapshotで返ってきてArrayではないからメンドくさいから、いい感じにArrayで扱えるようにするか
Cloud Functionsとかはネイティブアプリエンジニアでも利用することはあるので、ぜひ触ってみたいと思った。
まとめ
Firebaseの盛り上がりを感じた。結構iOSやAndroidのクライアントのエンジニアが多かった印象。Firestoreを触っている人が多く、いかに大きなインパクトを与えているのかを再認識した。
先週末にFirestore・Pringを使った記事も上げたのでぜひ参考に!
次回はLTする予定なのでよろしくお願いします!