Edited at

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対応に集中する時間を設けている

    • スプリントとチケットにより運用に乗せている
      #### 資料



  • 未公開