使用 Apple 登录的 Firebase 身份验证 Flutter 适用于 iOS,但不适用于 Android

问题描述 投票:0回答:1

当我使用以下代码触发 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 flutter firebase-authentication apple-sign-in
1个回答
0
投票

在我看来,苹果登录 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.
© www.soinside.com 2019 - 2024. All rights reserved.