代码之家  ›  专栏  ›  技术社区  ›  Shaifali Rajput

如何在firebase中获得与当前用户的链接帐户

  •  2
  • Shaifali Rajput  · 技术社区  · 7 年前

    mAuth.getCurrentUser().linkWithCredential(credential)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "linkWithCredential:success");
                    FirebaseUser user = task.getResult().getUser();
                    updateUI(user);
                } else {
                    Log.w(TAG, "linkWithCredential:failure", task.getException());
                    Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
    
                }
    
    
            }
        });
    

    现在我想得到的,是我的活期账户是链接到facebook还是谷歌。是否有可能获得这些信息,或者我应该将这些信息保存到数据库中?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Alex Mamo    7 年前

    现在我想知道,我的活期账户是链接到facebook还是google?

    FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    if (firebaseUser != null) {
        for (UserInfo userInfo : firebaseUser.getProviderData()) {
            if (userInfo.getProviderId().equals("google.com")) {
                Log.d(TAG, "User is signed in with Google");
            } else if(userInfo.getProviderId().equals("facebook.com")) {
                Log.d(TAG, "User is signed in with Facebook");
            }
        }
    }
    

    也可以使用以下代码:

    List<? extends UserInfo> infos = user.getProviderData();
    for (UserInfo ui : infos) {
        if (ui.getProviderId().equals(GoogleAuthProvider.PROVIDER_ID)) {
            Log.d(TAG, ui.getProviderId());
        }
    }