處理實時資料庫中的使用者帳戶資料

Firebase 身份驗證系統是使用者 uiddisplayNamephotoURLemail 的來源。基於密碼的帳戶通過 .updateProfile 方法在 auth 系統中設定這些持久值。將這些值儲存在實時資料庫中,rDB,users 節點會產生過時資料的問題。例如,顯示名稱可能會更改。為了使這些值保持同步,請使用與 .onAuthStateChange 一致的本地儲存

在每個 .onAuthStateChange

  • getItem('displayName')getItem('photoURL')
  • user.displayNameuser.photoURL 相比
  • 如果不同
    • setItem('displayName')setItem('photoURL')
    • db.ref.child('users').update displayName 和/或 photoURL 的值

.onAuthStateChange 會在每個頁面載入或重新載入時觸發,也會在每次身份驗證狀態更改時觸發。它可能經常發生,例如多頁面應用程式。但是,對本地儲存的讀寫是同步且非常快,因此對應用程式效能沒有明顯影響。