我正在玩弄FirebaseUI-Android,并且对唯一标识用户时使用的ID有疑问。 FirebaseUI管理身份验证权并返回IdpResponse
对象。这可以是例如脸书,推特,手机等等。这是感谢所有背后的人。自定义Firebase用户身份不使用Firebase用户uid
因为FirebaseUser.getUid()
可以改变,当用户删除/重新创建他的帐户,因此我不想链接我的用户数据与FirebaseUser.getUid()
令牌。
未来,如果我决定让用户在那里擦拭帐户,当用户返回时,用户的所有用户历史记录都将无法访问。同样在未来,如果我将我的系统迁移到某个地方,那么uid不会那么方便地拥有权利吗?
现在我创建了这个包装器(下面的代码)来创建一个从IdpResponse
中的数据外推的唯一ID。真的不知道,但我想这样做,除非有Google 2.0,否则不会有“身份证”冲突。 Twitter2.0 :)正确。同时,更容易在系统中排除错误,因为id不是UUID。
这是处理用户ID问题的推荐方法。我真的需要一些反馈和陷阱来警告这件事。
@Override
public String getUserId() {
String userId;
FirebaseUser user = getInstance().getCurrentUser();
if (user.getEmail() != null)
// User sign in with E-Mail
userId = user.getEmail().replace(".", ",");
else if (user.getPhoneNumber() != null){
// User sign in with Phone
userId = user.getPhoneNumber();
}else
// User sign in with Twitter or Facebook
userId = user.getUid();
return userId;
}
最令打扰我,这是Twitter或Facebook,因为我仍然要使用FirebaseUser.getUid()
。 IdpResponse.getIdpToken()
对我们更好吗?
谢谢我在想同样的事情。 –
所以,如果您认为我的回答对您有帮助,请考虑接受并给予+1。谢谢! –