處理實時資料庫中的使用者帳戶資料
Firebase 身份驗證系統是使用者 uid,displayName,photoURL 和 email 的來源。基於密碼的帳戶通過 .updateProfile 方法在 auth 系統中設定這些持久值。將這些值儲存在實時資料庫中,rDB,users 節點會產生過時資料的問題。例如,顯示名稱可能會更改。為了使這些值保持同步,請使用與 .onAuthStateChange 一致的本地儲存 。
在每個 .onAuthStateChange
getItem('displayName')和getItem('photoURL')- 與
user.displayName和user.photoURL相比 - 如果不同
setItem('displayName')和setItem('photoURL')db.ref.child('users').updatedisplayName和/或photoURL的值
.onAuthStateChange 會在每個頁面載入或重新載入時觸發,也會在每次身份驗證狀態更改時觸發。它可能經常發生,例如多頁面應用程式。但是,對本地儲存的讀寫是同步且非常快,因此對應用程式效能沒有明顯影響。