如何在Firebase身份验证中检查用户是否通过Facebook登录

我正在尝试确定当前用户是否通过Facebook登录在应用程序中进行了身份验证。我之所以这样做,是因为如果用户是通过Facebook进行身份验证的,那么Signout()应该处理

        LoginManager.getInstance().logOut();

但如果通过电子邮件进行身份验证,则

auth.signOut();

我的当前代码是

//sign out method
public void signOut() {

    if(auth.getCurrentUser().getProviderId().equals("facebook.com")) {
        LoginManager.getInstance().logOut();
        auth.signOut();
    }
    else {
        auth.signOut();
    }
}

解决方案

您可以这样做:

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

相关文章