在 iOS 中使用 LinkedIn + firebase auth + Flutter 登录

Signin with LinkedIn + firebase auth + Flutter in iOS

我有一个正在使用 linkedin_login 的 Flutter 应用程序:^2.0.1 插件和 firebase_auth:^3.1.0 在 Flutter 中输入代码

我正在使用 LinkedInAuthCodeWidget 并将身份验证状态和身份验证令牌提供给 CloudFunction 和 return JWT customtoken 用于该用户的登录。

然后使用 firebase 方法 FirebaseAuth.instance.signInWithCustomToken(token) 登录同一用户。

这一切都适用于 Android 但适用于 iOS 我无法获得 Firebase 身份验证用户的电子邮件 ID。

我已经尝试 FirebaseAuth.instance.currentUser.reload() 来检索最新的用户配置文件,但无法获取详细信息。

收到 iOS 的用户对象 -

(displayName: Test Krunal, email: null, emailVerified: true, isAnonymous: false, metadata: UserMetadata(creationTime: 2021-09-01 12:10:07.330, lastSignInTime: 2021-09-01 12:10:09.056), phoneNumber: null, photoURL: null, providerData, [], refreshToken: , tenantId: null, uid: linkedin:cNEwfSiQjM)

收到 Android -

的用户对象
(displayName: Test Krunal, email: doshikhxxx@gmail.com , emailVerified: true, isAnonymous: false, metadata: UserMetadata(creationTime: 2021-09-01 12:10:07.330, lastSignInTime: 2021-09-01 12:10:09.056), phoneNumber: null, photoURL: null, providerData, [], refreshToken: , tenantId: null, uid: linkedin:cNEwfSiQjM)

在搜索并尝试了很多东西之后,我找到了解决方案 -

当我们使用 firebase admin 创建用户时 api https://firebase.google.com/docs/auth/admin/manage-users#create_a_user 它不允许您输入提供者详细信息,因此要从管理员 api 创建新用户,请使用 import user https://firebase.google.com/docs/auth/admin/import-users#import_users_without_passwords 在用户信息中添加提供商数据。

完成后 iOS 将通过电子邮件为您提供正确的用户信息。 我的问题已解决。

如果有人解决这个问题可以试试这个。