Flutter Firebase Auth苹果登录出现unknown错误求助排查
苹果登录Firebase Auth出现[firebase_auth/unknown]未知错误排查
配置与代码中未发现明显错误,但调用Firebase Auth的signInWithCredential方法时触发[firebase_auth/unknown]未知错误。
登录实现代码
Future<UserCredential> signInWithApple() async { final appleCredential = await SignInWithApple.getAppleIDCredential( scopes: [ AppleIDAuthorizationScopes.email, AppleIDAuthorizationScopes.fullName, ], ); final oauthCredential = OAuthProvider("apple.com").credential( idToken: appleCredential.identityToken, accessToken: appleCredential.authorizationCode, ); // 错误发生在此处 return await FirebaseAuth.instance.signInWithCredential(oauthCredential); }
相关配置截图
Firebase Auth控制台

苹果开发者页面


XCode配置

重点排查方向
- 校验Token有效性:打印
appleCredential.identityToken和appleCredential.authorizationCode,确认不为空,可尝试用trim()处理后再传入OAuth凭证。 - 核对配置一致性:
- 确保Firebase控制台的苹果服务ID与苹果开发者后台的服务ID完全一致。
- 检查苹果开发者后台的重定向URI是否和Firebase配置的
https://<你的项目ID>.firebaseapp.com/__/auth/handler完全匹配。
- 检查XCode项目配置:
- 确认已添加
Sign in with Apple能力,且团队选择正确。 - 确保
Info.plist中存在NSAppleIDUsageDescription键并填写了合理的权限说明文本。
- 确认已添加
- 更新SDK版本:升级
firebase_auth和sign_in_with_apple插件到最新稳定版,避免版本兼容问题。 - 测试环境验证:使用真实设备测试,确保测试账号为开启双重认证的Apple ID或开发者测试用户。
- 获取详细错误日志:添加try-catch捕获完整错误信息,示例代码:
try { return await FirebaseAuth.instance.signInWithCredential(oauthCredential); } catch (e) { print('完整错误详情: $e'); rethrow; }
内容的提问来源于stack exchange,提问作者user16330449
相关产品推荐
相关产品推荐

