使用 Apple 登录而不使用 Firebase/Flutter

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

我有一个 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 认为它已被禁用?

flutter firebase firebase-authentication
2个回答
1
投票

您检查了 firebase 网站上写的要求吗

重要提示:要使用 Apple 帐户登录,用户必须:

  • 拥有启用了双因素身份验证 (2FA) 的 Apple ID。
  • 在 Apple 设备上登录 iCloud。

文档:https://firebase.google.com/docs/auth/ios/apple#configure-sign-in-with-apple


0
投票

要解决在Web和Android平台上遇到的相同问题,需要完成“OAuth代码流配置(可选)”步骤。这是一个简化的指南:

  1. 首先在 Apple 开发者网站创建密钥:Apple 开发者帐户 - 身份验证密钥

  2. 导航到 Firebase 项目的 Apple 登录配置:

    • 转到 Firebase 控制台
    • 访问“身份验证”部分。
    • 选择“登录方式”。
    • 选择“登录提供商”。
    • 点击“苹果”。
    • 继续“OAuth 代码流配置(可选)”。
  3. 在这里,您需要提供具体详细信息:您的团队 ID、密钥 ID 和私钥。

  4. 有关详细演练,请参阅 YouTube 上标题为“通过 Firebase Web 应用程序登录 Apple”的 Fireship 教程视频中的步骤 4:在 YouTube 上观看

本指南应帮助您在 Firebase 项目中有效配置用于 Apple 登录的 OAuth 代码流。

© www.soinside.com 2019 - 2024. All rights reserved.