当我使用以下代码触发 Apple 登录时:
Future<UserCredential> signInWithApple() async {
final appleProvider = AppleAuthProvider();
appleProvider.addScope('email');
// appleProvider.setCustomParameters({
// 'client_id': 'com......firebase', // service ID
// }); // client_id is reserved
return await FirebaseAuth.instance.signInWithProvider(appleProvider);
}
它使用我在 Apple 开发人员创建的服务中提供的正确信息启动了 chrome,似乎登录过程已正确完成。但是当它返回到 Android 应用程序时,我收到以下错误消息:
FirebaseAuthException: 代码:无效凭证, 消息:HttpMetadata{status = 400,cachePolicy = NO_CACHE,cacheDurationJava = null,cacheImmutable = false,staleWhileRevalidate = null,filename = null,lastModified = null,retryAfter = null,crossOriginEmbedderPolicy = null,crossOriginOpenerPolicy = null,crossOriginResourcePolicy = null,permissionsPolicies = []、 headers=HTTP/1.1 200 OK、contentSecurityPolicies=[]、originTrials=[]、reportToHeaders=[]、varyHeaderNames=[]、cookieList=[]}}、 堆栈跟踪:空
我已经创建了两次密钥和服务,并与 Apple 开发人员仔细检查了所有内容,并按照 Firebase 建议的域名进行了回调。
按照要求将值放入 Firebase Auth 中,但它似乎不起作用并且错误仍然存在。
如果我取消错误代码是“web-context-canceled”所以我认为没关系。
如果有人遇到类似问题,我们将不胜感激。
在我看来,苹果登录 Android 有点多余,但如果你仍然想实现它,
查看:https://pub.dev/packages/sign_in_with_apple
你可能需要
Create a Service ID
它说:
The Service ID is only needed for a Web or Android integration. If you only intend to integrate iOS you can skip this step.