Firebase与Firestore:重装应用后如何恢复用户凭证及数据?
问题解答
问题A:访客用户绑定Google账号后UID是否保留?
是的,UID会保留原来的uid123。当调用linkWithCredential将Google认证凭证关联到匿名用户时,Firebase Auth不会生成新的用户ID,而是将Google登录方式添加到现有匿名用户的身份认证列表中。整个用户实体还是原来的那个,所以UID保持不变,你可以继续用uid123作为Firestore用户表的标识,无需额外调整。
问题B:重装后新匿名账号如何找回原Google绑定的用户数据?
当用户重装应用后以新匿名账号(uid456)登录,再使用同一Google账号登录时,不要直接调用linkWithCredential,正确流程如下:
- 先调用
signInWithCredential用Google凭证登录,Firebase Auth会识别到该Google账号已关联过之前的匿名用户(uid123),直接返回uid123对应的用户实例。 - 若
uid456下有临时数据,可将其合并到uid123的Firestore文档中。 - 合并完成后,调用
delete()删除新的匿名账号(uid456),避免数据冗余。
通过这种方式,就能直接找回uid123下的所有历史数据——因为Google账号与uid123的关联关系已在Firebase Auth后台存储,用该Google账号登录时会自动关联到原用户。
内容的提问来源于stack exchange,提问作者dor506
相关产品推荐
相关产品推荐

