主要是看這篇 Lessons learnt (the hard way) using Firebase RealTime Database 所摘要下來的重點。
TL;DR:作者用了 realtime database,然後意外收到 1000 EUR 的帳單。
作者做的是交通運輸類的 app ,realtime database 存的是使用者的最愛站牌、路線等。主要用了 Firebase 的這兩項功能:
他們檢討以後,發現有幾個關鍵點:
TL;DR:作者用了 realtime database,然後意外收到 1000 EUR 的帳單。
作者做的是交通運輸類的 app ,realtime database 存的是使用者的最愛站牌、路線等。主要用了 Firebase 的這兩項功能:
- Firebase authentication
- Realtime database
他們檢討以後,發現有幾個關鍵點:
- keepSync ,這個不要設成 true,firebase SDK的行為沒有預期中聰明,他會在每次使用者開啟app時就下載一次!
- database.getReference(getUserFavoritesPath(getCurrentUid())).keepSynced(true)
- key 的名稱不要太長,只要這個弄短,無形中可以省掉非常多。
- 最佳化存在資料庫的資料,改用 GSON ,以及縮短 key 的長度。
- 關掉 keepSync
- 在 app 端實作了 memory cache ,以避免無謂的去 firebase 撈資料。
- 人數很多時,realtime database 可能會是很花錢的項目,特別是結構跟讀取資料邏輯沒有最佳化的時候。
- 要將存在雲端上的資料最小化,使用較短長度的 key ,可以幫你省掉不少錢。
- Firebase persistence 啟用時,firebase 只會在沒網路的時候使用本地的 cache,其他的狀況他不管資料有沒有改都會存取雲端。
- 不要用 keepSync(true)
- 實作本地端的 cache ,以避免重複跟 firebase 索取資料。
沒有留言:
張貼留言