Kar*_*dts 6 authentication dart firebase flutter
我有一个具有 3 种登录方法的应用程序:Google、Facebook 和邮件。我想向使用邮件登录的用户显示不同的屏幕。是否可以从包 firebase 身份验证中获取登录方法?
我知道我可以通过使用 firestore 并检查语句是真是假来解决这个问题。但是每次用户打开应用程序时,我都会花费我一次阅读...
Gaz*_*kus 10
这似乎是你想要的:https : //firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseUser.html#getProviderData()
在我仅使用 Google 登录的应用程序中,我有firebaseUser.providerData[1].providerId == 'google.com'.
顺便说一句,firebaseUser.providerData[0].providerId == 'firebase'。
我想你可以检查所有这些,并寻找为不同类型的用户提供的提供商。
编辑:这是我使用电子邮件登录时得到的信息:https : //postimg.cc/BXWGGN6h
awa*_*aik 10
Firebase 有一个特殊的属性providerId。但是,正如@GazihanAlankus 所提到的,它总是返回firebase.
而且,该属性firebaseUser.providerData[1].providerId有时不存在(例如,当用户使用匿名登录时)。
因此,我们应该使用适当的方法,例如:
FirebaseUser user = await _firebaseAuth.currentUser();
if (user.providerData.length < 2) {
// do something
}
else {
print(res.providerId);
}
Run Code Online (Sandbox Code Playgroud)
由 property 返回的值列表providerId:
EmailAuthProviderID: password
PhoneAuthProviderID: phone
GoogleAuthProviderID: google.com
FacebookAuthProviderID: facebook.com
TwitterAuthProviderID: twitter.com
GitHubAuthProviderID: github.com
AppleAuthProviderID: apple.com
YahooAuthProviderID: yahoo.com
MicrosoftAuthProviderID: hotmail.com
Run Code Online (Sandbox Code Playgroud)
我从这里的酷研究中得到了这个列表firebase.UserInfo.providerId 的提供者 ID 的完整列表是什么?
| 归档时间: |
|
| 查看次数: |
2418 次 |
| 最近记录: |