Firebase自定义身份提供商解绑:Unity环境下如何操作?
解决Unity Firebase自定义Twitch提供商解绑问题
核心问题原因
Firebase客户端的UnlinkFromProvider方法仅支持官方预定义的身份提供商(如邮箱、Apple、Google等),自定义提供商的关联关系存储在你自己的独立表中,Firebase Auth系统本身未记录该关联,因此传入任何自定义provider ID都会触发FirebaseException: User was not linked to an account with the given provider错误。
具体解绑步骤
验证当前用户登录状态
执行解绑前需确认用户处于登录状态,防止非法操作:FirebaseUser currentUser = FirebaseAuth.DefaultInstance.CurrentUser; if (currentUser == null) { // 处理用户未登录的情况 return; }操作独立关联表删除记录
直接从存储Twitch与Firebase用户关联关系的独立表中删除对应条目。以Firestore为例:// 假设关联表集合名为"twitch_user_links",文档ID为Firebase用户ID DocumentReference linkDoc = FirebaseFirestore.DefaultInstance.Collection("twitch_user_links").Document(currentUser.UserId); await linkDoc.DeleteAsync();(可选)同步客户端本地状态
如果客户端缓存了用户的Twitch关联状态,解绑后需更新缓存,避免界面显示异常。
注意事项
- 切勿使用Firebase Auth官方解绑方法处理自定义提供商,该方法仅对官方注册的提供商生效。
- 解绑操作需添加权限校验,确保只有当前用户能删除自己的关联记录,避免越权操作。
内容的提问来源于stack exchange,提问作者James Hall
相关产品推荐
相关产品推荐

