Firebase Meetup #11 Meetup内容まとめ


はじめに

Firebaseコミュニティ Firebase Japan User Group(FJUG)の2019/2/18に開催されたMeetup内容のまとめです。

LT

Firestore rulesの運用とLocal Emulatorを使ったテスト

スピーカー

  • Ginco

内容

  • FirebaseDatabaseの62%が漏洩
  • そこで、Firestoreのセキュリティ基礎
    • クライアントから直接アクセスできる
    • アクセスはAPIキーが必要
    • だれでもアクセスできるからrulesを整理
    • rules
      • read/ write権限
      • データのバリデーション
      • 漏洩しないためのrules設定 - 機密データは別階層にしてrules設定を厳しく
      • ワイルドカードでのrules設定できるが多用しないほうが良い
  • Ginco
    • リリース中期でrulesが300件こえて管理困難に
  • rulesのテスト方法
    • ClientSDKだけrulesが適用される
    • テストProjectを使った方法
      • あまり良くなかったそう
  • 現在はFirestore Local Emulator でテストしてる
    • 認証、未認証アカウント、Adminアカウントを簡単に利用可能
    • テストデータの競合しない、truncateしなくていい
      • プロジェクトIDかえればまっさらな状態にできる
    • テスト実行時間が1/8に削減できた

資料

Firestore東京リージョン利用に伴う Firebaseプロジェクト移行手順

スピーカー

内容

  • アルで現在移行作業中
  • 100回程度のgetベンチマーク
    • us-centralは平均200ms
    • 東京リージョンだと平均100ms
  • firestoreのデフォルトリージョンはus-central(β以前のプロジェクトは全部この状態)
    • firebaseは1プロジェクト1firestoreなのでリージョン変更は作り直さないといけない
  • Firebase AuthenticationはInport/Exportできるので新プロジェクトでも同じユーザにできる
    • 匿名ユーザはログイン状態が引き継がれないためデータが消えてしまう
    • 旧Firestore -> GCSにデータをExport ー>GCS ー>新Firestoreに
  • ロンチ後だとデータ整合性担保するためにメンテナンス入れて移行が現実的 #### 資料
  • https://speakerdeck.com/vexus2/alu-firestore-number-aru

Firestore x React Hooks

スピーカー

  • Mamoru Amano

内容

  • ReactHooks
    • React16.8から導入されたFunctionComponentの新しいAPI
    • componentのstateをfunctionで管理

資料

  • 未公開

firebase × Vueと開発速度

スピーカー

  • k-okina

内容

  • firebaseつかってインフラ、バックエンドのリソース余裕できた分、フロントに力入れよう
  • Firebase が時間を生んでくれたおかげで堅牢な設計や凝った UI ができた
  • pring.ts + vue.jsで開発すると開発速度上がりそう
  • firebaseはいい感じにcacheしてくれて状態管理で困らない
  • 次はElm + Firebase構成を使いたい。
    • ElmはReduxやVuexなどに影響を与えた言語なので最高なのでは?
  • firestoreのちょいテク
    • 分散カウンタ
      • 同一ドキュメントの更新は1秒に1回の制限がある
      • 多重いいねやCloudfunctionの多重実行対策にサブコレクションで保持する #### 資料
  • https://slides.com/kahirokunn/deck-11#/

FirestoreのセキュリティルールをCircleCIでCIする

スピーカー

  • ninjinkun

内容

  • 個人開発したBlogFeedbackアプリ
    • PWAで開発してる
    • Firestoreはセキュリティルールが命
    • セキュリティルールをCIしたい
      • データ構造修正のたびにセキュリティルール更新が発生する
      • 更新のたびにルールが正しいか保証したい
      • そこでLocal Emulator
      • circleciでやってる
        • cloud fanctionをcircleciでデプロイする場合、nodeのバージョンがちがうと動作しないので注意
      • firebase-tools > 6.1.1問題
        • circleciでのエミュレーター起動で落ちる
        • 原因;エミュレーターがIPv6アドレスにバインドするように変更されてた
          • cicleciではIPv6がサポートされてない
            • Jarを直接起動することで解決
              • Jar直接起動だとHostが上書きできるのでIPv4に書き換えれる #### 資料
  • https://ninjinkun.hatenablog.com/entry/cloud-firestore-circleci

FirebaseとJIRAで進めるクラッシュ管理

スピーカー

  • 株式会社ナビタイムジャパン 向井さん

内容

  • firebaseのCrashlytics
    • JIRAとの連携
      • CrashlyticsのissueからJIRAチケットを作ることができる
      • Firebaseとの統合からJIRAを選択する必要あり
  • ナビタイムさんでの運用
    • Crash対応に集中する時間を設けている
    • スプリントとチケットにより運用に乗せている #### 資料
  • 未公開