![](/img/trans.png)
[英]How to determine if a Firebase user is signed in using facebook authentication
[英]How to determine if a Firebase user is signed in using email and password authentication
我正在使用 Firebase 身份验证。 用户可以通过电子邮件密码、谷歌和脸书登录。 我如何知道用户是否使用电子邮件密码登录? 我看了这个答案
我试过这个:
for (UserInfo user: FirebaseAuth.getInstance().getCurrentUser().getProviderData()) {
if (!(user.getProviderId().equals("facebook.com") || user.getProviderId().equals("google.com"))) {
System.out.println("User is signed in with Email");
}
}
但是当我同时使用谷歌和电子邮件密码时,如果声明为真。
email+password的提供者 ID 是password
。 所以:
for (UserInfo user: FirebaseAuth.getInstance().getCurrentUser().getProviderData()) {
if (user.getProviderId().equals("password")) {
System.out.println("User is signed in with email/password");
}
}
以下是对我有用的内容:
user.getProvider()返回firebase
user.getProviderData()返回一些 Id。
user.getProviders()返回的列表返回登录帐户类型
这是我所做的:
@Override
protected void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = mAuth.getCurrentUser();
if (currentUser == null)
return;
for (int i = 0; i < currentUser.getProviders().size(); i++) {
if (!currentUser.getProviders().get(i).equals("google.com") && !currentUser.getProviders().get(i).equals("facebook.com")) {
//User signed in with a custom account
//Todo: call server DB or perform some task
} else
updateUI(currentUser);
}
// Todo: Complete login activity and switch to the main activity
}
只需检查用户电子邮件是否为空,如果为空则表示用户已登录而没有电子邮件
if(TextUtils.isEmpty(user.getEmail())){
phone = user.getPhoneNumber();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.