使用Firebase进行身份验证
问题描述:
对不起,如果这是一个简单的问题..但我似乎无法找到一个好的答案。使用Firebase进行身份验证
我想实现一个匿名登录,用户只需登录他们的设备。我猜测跨iOS和Android的设备没有唯一的ID ..所以我想我必须手动生成一个ID,然后看看它是否已经在使用,然后是否重新生成。有这样的解决方案吗?我的解决方案似乎真的哈克......
我现在的想法,逻辑明智,那就是:
- 生成唯一的ID
- 查询数据库,看看是否唯一ID已在使用
- 如果是重复前两个步骤
- 如果没有推高
我需要能够跟踪推什么设备什么样的信息给databa se,但我不想让用户必须登录或提供任何信息。
答
这听起来像您正在寻找Firebase的匿名身份验证。用户启动应用程序的第一次,你在再签收:
FirebaseAuth.getInstance().signInAnonymously()
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInAnonymously:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInAnonymously:failure", task.getException());
Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
// ...
}
});
这对他们来说并存储生成一个唯一的UID,在您的应用程序的共享偏好。
他们下一次启动应用程序,其用户信息被读取,你可以检测到用户使用:
FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
updateUI(currentUser);
见获取更多信息Firebase Authentication documentation。这也可在iOS。