Flutter中如何获取Apple凭证以关联Firebase应用账户?
Firebase账户关联官方步骤
Firebase官方文档说明:
3. 获取新认证提供商的Credential对象:
// Google 登录 final credential = GoogleAuthProvider.credential(idToken: idToken); // 邮箱密码登录 final credential = EmailAuthProvider.credential(email: emailAddress, password: password); // 其他示例
- 将Credential对象传入已登录用户的
linkWithCredential()方法:
try { final userCredential = await FirebaseAuth.instance.currentUser ?.linkWithCredential(credential); } on FirebaseAuthException catch (e) { // 异常处理 }
遇到的问题
已通过上述方法成功关联Google、Facebook账户与Firebase应用账户,但无法获取Apple登录对应的AuthCredential对象——这是调用FirebaseAuth.instance.currentUser.linkWithCredential(AuthCredential credential)方法的必要参数。
虽找到AppleAuthProvider.credential(accessToken)方法,但不清楚如何获取所需的accessToken参数。
当前临时解决方案
- 调用现有Apple登录代码
- 提醒用户选择「显示我的邮箱」而非「隐藏我的邮箱」,借助Firebase认证设置中开启的「同邮箱账户关联」功能,实现Apple账户与现有Firebase账户的关联。若用户选择「隐藏我的邮箱」,Apple会生成匿名随机邮箱,导致创建新的Firebase账户。
内容的提问来源于stack exchange,提问作者Cedric
相关产品推荐
相关产品推荐

