我有使用linkedin_login的flutter应用程序:^2.0.1
插件&firebase_auth:^3.1.0
在Flutter中输入代码
我正在使用LinkedInAuthCodeWidget,并向CloudFunction提供认证状态和认证令牌,并返回该用户登录的JWT自定义令牌。
之后使用firebase方法FirebaseAuth.instance.signInWithCustomToken(token)登录同一个用户
在这一切都为Android工作,但对于iOS,我无法获得Firebase认证用户的电子邮件id。
我已经尝试了FirebaseAuth.instance.currentUser.reload()来检索最新的用户配置文件,但无法获得详细信息。
User object received for 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使用创建新用户导入用户https://firebase.google.com/docs/auth/admin/import-users#import_users_without_passwords,在用户信息中添加提供商数据。
一旦完成,iOS将通过电子邮件向你提供适当的用户信息。我的问题已经解决了。
如果有人遇到这个问题,可以试试这个。