我有一个 firebase 项目,我在其中启用了通过 Google、Microsoft 的身份验证,最近我添加了 Apple。 Google 和 Microsoft 都可以正常工作,但 Apple 登录会抛出错误。我已确保启用了 Apple Signin,并且已在我的 Apple 开发者帐户上配置了“使用 Apple 登录”。
下面是用于调用它的代码。
static Future<UserCredential> signInWithApple() async {
final appleProvider = AppleAuthProvider();
UserCredential userCredential = await FirebaseAuth.instance.signInWithProvider(appleProvider);
]
return userCredential;
}
但是,当我单击使用 Apple 登录时,出现以下错误:
[错误:flutter/runtime/dart_vm_initializer.cc(41)] 未处理的异常:[firebase_auth/operation-not-allowed] 给定的登录提供程序已为此 Firebase 项目禁用。在 Firebase 控制台的“身份验证”部分的“登录方法”选项卡下启用它。 [ Apple 未启用代码流。 ]
从图片中可以看到,它已启用。我也尝试过下载最新的 google-service.json 文件,这没有影响。
为什么 Firebase 认为它已被禁用?
您检查了 firebase 网站上写的要求吗
重要提示:要使用 Apple 帐户登录,用户必须:
文档:https://firebase.google.com/docs/auth/ios/apple#configure-sign-in-with-apple
要解决在Web和Android平台上遇到的相同问题,需要完成“OAuth代码流配置(可选)”步骤。这是一个简化的指南:
首先在 Apple 开发者网站创建密钥:Apple 开发者帐户 - 身份验证密钥。
导航到 Firebase 项目的 Apple 登录配置:
在这里,您需要提供具体详细信息:您的团队 ID、密钥 ID 和私钥。
有关详细演练,请参阅 YouTube 上标题为“通过 Firebase Web 应用程序登录 Apple”的 Fireship 教程视频中的步骤 4:在 YouTube 上观看。
本指南应帮助您在 Firebase 项目中有效配置用于 Apple 登录的 OAuth 代码流。