以前的聊天数据包含更改前的昵称,因此在更改昵称时不会实时反映。在更改昵称之前,我应该使用什么方法实时更改昵称,甚至是聊天?
每次更改昵称时,是否必须更改聊天数据中的昵称信息?
Firebase.usersRef
.doc(Firebase.currentUser.email)
.update({'nickname': nickname})
.then(() ⇒ {
Firebase.chatsRef
.where('user.name', '==', Firebase.currentUser.email)
.get()
.then((querySnapshot) ⇒ {
querySnapshot.forEach(doc ⇒
// Changing the nickname
)
})
})
.catch(err => console.log(err));发布于 2022-05-18 04:01:35
您应该通过一个所谓的稳定标识符来标识每个聊天消息的用户,显然他们的昵称不是在您的情况下。
考虑到您似乎在使用Firebase身份验证,用户最常见的稳定标识符是他们的UID,您可以通过Firebase.currentUser.uid获得该标识。因此,除了用户的昵称之外,还要在每个文档中存储他们的UID。然后使用UID为用户选择消息,并使用昵称仅显示在UI中,
https://stackoverflow.com/questions/72283013
复制相似问题