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