在Firebase中使用fetchProvidersForEmail()中的Detemine Auth提供程序

时间:2016-10-18 12:25:56

标签: android firebase firebase-authentication

我需要确定用户当前使用特定电子邮件登录的用户/提供商。如果有人为我提供fb,google,twitter,github和电子邮件方法的完整方法,那将是非常好的。

我无法在互联网或Firebase文档上找到正确的代码来确定它。这是我的代码,如果有任何帮助的话。

 mAuth.fetchProvidersForEmail(email[0]).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() {
     @Override
     public void onComplete(@NonNull Task<ProviderQueryResult> task) {
         if (task.isSuccessful()) {

           //What to do ??                                                    }
     }
 });

提前致谢。

2 个答案:

答案 0 :(得分:1)

在onComplete()中,你可以调用task.getResult()来获取ProviderQueryResult,其中包含该用户使用的Auth提供者列表。

答案 1 :(得分:0)

如果用户已登录,您可以使用以下代码获取提供者:

FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
String providerId = firebaseUser.getProviderData().get(1).getProviderId();