处理实时数据库中的用户帐户数据
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').update
displayName
和/或photoURL
的值
.onAuthStateChange
会在每个页面加载或重新加载时触发,也会在每次身份验证状态更改时触发。它可能经常发生,例如多页面应用程序。但是,对本地存储的读写是同步且非常快,因此对应用程序性能没有明显影响。