2

如何修改此onStart()方法以获取我单独的电话身份验证用户数据库?

@Override
protected void onStart() {
    super.onStart();
    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
    if (firebaseAuth.getCurrentUser() != null) {
     if(what condition required to check for phone auth){
        startActivity(new Intent(EnterAs.this, UI_Main_User.class));
        finish();
    } else {
       for email auth users
    }
}
4

1 回答 1

1

您可以通过在FirebaseUser对象上调用 UserInfo 的getProviderData()方法来获取经过身份验证的用户使用的所有身份验证提供程序的列表。还有一点需要注意的是,每个UserInfo类都包含一个名为getProviderId()的方法,该方法返回提供者的 ID。

代码中可行的解决方案可能如下所示:

FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
List<? extends UserInfo> userInfos = firebaseUser.getProviderData();
for (UserInfo userInfo : userInfos) {
    String providerId = userInfo.getProviderId();
    if (providerId.equals(PhoneAuthProvider.PROVIDER_ID)) {
        //Your logic goes here
    }
}

如果将来您将使用例如Google 身份验证与 Firebase,那么您应该检查:

GoogleAuthProvider.PROVIDER_ID
于 2020-04-11T12:36:59.827 回答