Firebase Meetup #4にblog枠として参加したのでそのレポートを。
(本当は一般参加枠で行きたかったのだが、気づいたときには時すでに遅しでblog枠かsns枠で行かざるを得なかった…)
会場
六本木の森タワーにあるGoogleさんのオフィスにて。食堂っぽいところだった。それにしてもオシャレ。
今回は動画配信できるように録画したりしているみたい。
一般参加者だけで110人なので大きめの規模であった。
発表
発表資料(あがり次第掲載する)と、私的メモを挟みつつ。
Firestoreのセキュリティルールについて (Web)
コキチーズさんの発表。Firebaesの3つの機能のセキュリティルールについてのお話
- 「クライアントで書き出しも読み出しもしないのが最強のセキュリティルール 😇」
- ルールが記述できるのは、Realtime DB, Cloud Firestore, Cloud Storageの3つ
- RealtimeDBはルールの条件式がカスケードで適応されるので、上層でmatchすると下層でも同じルールが適応されてしまう
- RealtimeDBで
$other
を利用して意図しない値の書き込みを抑制できる - RealtimeDBはJSON形式で記述するので辛い→Boltがある。Bolt使ったほうが見通しの良いルールが書きやすい
- Storage, Firestoreは独自の言語でルールが書け、read(get,list),write(create,update,delete)に分割できる。
- RealtimeDBと違い、デフォルトでカスケード適応派されない
- protobuf-rules-genを使うのも良い
- セキュリティルールは必ず設定しよう
Firebaseを使ってプッシュ通知基盤を作ったときにハマったところ、よかったところ
dannoさんの発表。プッシュ通知基盤を作った時にハマったことなどのお話
- Firebaes Notificationsの運用負荷が大きい。
- ユーザーリストを作成する運用負荷が高い。休眠ユーザー抽出の為の定義やユーザープロパティが設定しづらい
- FCM+αでやってみる
- topid(pub/sub)で配信するか、FCMから配信するかが難しい。レイテンシや1件毎の送信可否の内訳とかどうしよう…→FCMでの配信をした
- 開封イベントは
push_open
などのカスタムイベントを準備して計測できるようにした - Firestoreにデータを入れる時に、field名の制約につまづいたりもした(ハイフン使えない…とか)
- GAEも利用している
- 今後、webプッシュやレコメンドと連携したpush通知も考えていきたい。
Growth Product
1amageekさんの発表。今話題(?)のFirebaseの話題からビジネス的なお話。
途中でライブコーディングがあった。
- Firebase最近話題である→ビジネス的な側面を語る
- スケールするサービスを支える時代→新しいサービスを作る時代
- エンジニアが足りていない!
- PDCAのサイクルを高速化させて回せてる企業が伸びている
- →Firebaseだと早いよ→Demoやってみる
- データの取得とかも簡単
- 爆速!!作っては壊してのサイクルを早く回せる
- Demoはこれ
AndroidでMLKitを試す
yamacraftさんの発表。MLKitを試した発表
- サンプルが動かなかった…😢
- firebaseのクイックスタートのサンプルを紹介する
- クイックスタートのアプリでmlkitのデモを試せる!
- カメラを使って人の顔を検出する
- サンプルプロジェクトが何をしているか解説する
- フレーム飛びをフレグために大量にbufferを登録してVisionFaceDetectorに流し込んでいる
- FirebaseVisionFaceDetectorの結果を元に、プレビュー画面に結果をオーバーレイしている
- MLKit使うこと自体は 簡単、MLKitを使う前後の制御が 辛い
Firebase Authenticationで色々使ってみた
teyoshさんの発表。Authentication色々やってみたというお話。
(資料はアップロードされ次第掲載します)
- 対応プロバイダが多岐にわたる
- メールアドレス認証の場合は、
createUser
したあと、signIn
するだけなので簡単 - 電話番号認証もある
- サインインしたユーザーに対して、他の認証方法をlinkさせることができる
Firestoreをもっと手軽に使えるfirestore-simpleを作った
Kesinさんの発表。firebase-simpleを作ったお話
- Firestoreのいいところ→言語が違ってもAPIはだいたい同じ
- →逆に言えば辛いづらいところもあるので、汎用化してライブラリにしよう
- firestore-simpleを作った、シンプルに使える
- 毎回コレクションへのパスを書くのはめんどくさいよね
- 結局自分でコレクションに対するModelを作ることになってしまう
- fetch周りが凄いいい感じにできる。コレクションパスを毎回書いたりするのから解放される。
- TypeScriptで作った
- updateやトランザクションにはまだ対応していない
- jsでFirestoreを使う人におすすめ
懇親会
iOS/Android/Web/Otherみたいな感じでそれぞれざっくり分かれてテーブルでピザとビールで懇親会!
届いたばかりの新鮮なピザの写真取れなくてごめんなさい 🙏
ピザはナポリの窯だったのでめっっっっっっっちゃおいしかった。ごちそうさまでした。
おわり
各機能の試したみた話や、コアなお話が色々聞けて有意義だった。
次はFirebase Meetup #5が8/7に行われ、自分もLT枠で参加する予定。
よろしくおねがいします。
登壇資料は発表者が公開し次第追記していきます。
ちょっとだけ宣伝
そして宣伝ですが、Cookpad Tech Kitchen #16 コメルコテックバナシ〜新規事業開発のリアル〜というイベントで、
KomercoでのFirebaseの活用事例や新規事業開発でのリアルなお話をする予定です。こちらもご参加&応援よろしくおねがいします 🙏