如何从 Firebase Apple 登录中获取电子邮件和全名?

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

通过最新更新,Firebase 允许您使用

AppleAuthProvider
登录,而无需使用
sign_in_with_apple
软件包。这确实很有用,但是我如何才能获得用户的全名和电子邮件?

我知道我可以使用函数

.addScope()
添加范围,但是如何检索它们?

现在举个例子,我们可以通过以下过程检索这些数据:

final AuthorizationCredentialAppleID credential =
   await SignInWithApple.getAppleIDCredential(
    scopes: <AppleIDAuthorizationScopes>[
        AppleIDAuthorizationScopes.email,
        AppleIDAuthorizationScopes.fullName,
    ],
   nonce: nonce,
);
final String name = credential.givenName + credential.familyName;
final String email = credential.email;

但现在我想要这样的东西

final AppleAuthProvider appleAuth = AppleAuthProvider();
appleAuth.addScope('email');
appleAuth.addScope('name');

final UserCredential authResult = await FirebaseAuth.instance
        .signInWithAuthProvider(appleAuth);
final String name = ... //What should I put here?
ios flutter firebase apple-sign-in
2个回答
3
投票

看起来是个bug 已报告 Github 问题

希望他们尽快修复

编辑************

我发现这种情况可能会发生,因为你第一次使用此方法时,没有使用作用域。

解决方案是转到设置> iCloud>密码和安全>使用Apple ID的应用程序。 并删除你的应用程序,因为苹果只有在你第一次使用该方法时,才会带来你请求的信息


0
投票

我从 Apple Sign in with firebase 获取姓名和电子邮件。下面是代码。

final appleProvider = AppleAuthProvider()
..addScope('email')
..addScope('name');
UserCredential userCredential =
    await FirebaseAuth.instance.signInWithProvider(appleProvider);

userCredential.user?.displayName

userCredential.user?.email

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