我正在使用来自google的firebase,并且我在用户身份验证方面遇到了一些问题。在使用Facebook登录后,我在AuthStateListener中获取了FirebaseUser,但是如何检测此用户是通过Facebook还是以不同方式登录?如何确定Firebase用户是否使用Facebook身份验证登录
UPDATE 作为@Frank面包车Puffelen说FirebaseAuth.getInstance()。getCurrentUser()。getProviderId() 应该返回 “脸谱”,但在我的情况下,它会返回 “火力点”。现在我无法弄清楚这是什么原因。当我FacebookToken我做这样的事情:
AuthCredential credential = FacebookAuthProvider.getCredential(facebookToken.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
}
}
});
而且afterthat叫的onComplete()方法之前,我AuthStateListener获取用户,其供应商ID是不是“脸谱”理所应当的。难道我做错了什么?我遵循官方谷歌documentation
我相信FirebaseUser.getProviderId()将返回“facebook.com”,但我无法测试它,因为我的应用程序不使用Facebook。如果可以的话,也许试试吧? –
请看我的更新问题。 – Taldakus