※Notes記事では、英語のセッション動画やポッドキャストの内容を(雑に)英語でメモに書き残すことを行っています。本記事は、あくまで動画を見ながら、参考程度に読んでいただくことを想定しています。Notes記事には雑メモ程度のものだったり、書き起こしのようなものもあります。これから実際の動画を見る際には、本記事の内容が少しでもお役に立てば幸いです。(内容において不備、誤字脱字等ありましたら気軽にご連絡いただけると嬉しいです!m(__)m)
本記事は、Firebase offline: What works, what doesn't, and what you need to know (Firebase Summit 2019)の記事です。
Should we care about offline anyway?
Yes! Users may..
- be in crowded place
- go underground
Firebase is not an offline-first platform, but offline-tolerant
What works
- It (mostly) works
- Caching things locally
- Exponential back-off and retry
Firebase Auth
- you only have the access to the user object
- you can't login
Gotchas
- Login
- Auth Persistence
- Tells how long you stay logged in
- Trade-off between offline-experience and security
Cloud Firestore
How large is that cache, anyway?
- For mobile - 100MB
- For web - 40MB
- on-device cache is not indexed right now
- unpack and scan every document you are searching
- if your cache is too big or too many writes this can be quite slowly
- Maybe not pre-loading your cache too much is better than overloading cache data
- Adjust your cache size by configuring Firestore
Cloud Storage
- you can save large object to the cloud
- specifying a reference like a path to upload and download the content
All The Measurement Libraries
- On Android, all this uploading is done by Google Play Services
- That is why if your app were crashed on Android, you can see that crashed data and upload it for you
- if offline, exponential back-off retry
- Performance Monitoring
- Analytics
- About 100,000 events
- Most recent data gets eliminated
- Crashlytics
- 9 crashes(up to 150k each)
Conclusion
- If you're offline, things mostly just work
- Designed for occasional offline moments, but not offline-first
- if you need complete offline experience, maybe not the right tool
- Measurement tools don't trust data that too old
- Mostly 72 hours old?
所感・まとめ・個人的に印象に残ったことなど
- Androidでは、Firebase AnalyticsやFirebase CrashlyticsはGoogle Play Services経由でログを送信している
- そのため、アプリのタスクがキルされている状態でも動作する
- Firebaseはオフラインファーストのサービスではないが、通常利用によるオフライン状態(地下鉄や混雑時)などには想定されており、2つの方法を用いてオフライン対応をしている
- Local cache
- Exponential backoff and retry
- オフライン時にもオンラインと同等のサービス提供が必須なアプリには適切なツールではないかもしれない
以上です!