【发布时间】:2021-10-04 15:28:04
【问题描述】:
如果用户名正在被其他用户使用,我正在尝试检查用户的注册。但不幸的是,firebase 没有该选项,但他们确实有电子邮件选项,但没有用户名。我知道那可能是因为它不在用户身份验证中,而仅在数据库中,并且必须手动解决。这是我正在使用的代码。在数据库中只读取任何内容,但即使使用未使用的名称也会显示 toast 消息。即使使用使用的名称,注册也会继续有人有某种解决方案吗
private void RegisterNow(final String username, String email, String password){
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
FirebaseDatabase.getInstance().getReference().child("MyUsers").orderByChild("username").equalTo(username).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(username)){
Toast.makeText(RegisterActivity.this, "Username already in use please!", Toast.LENGTH_SHORT).show();
Intent i = new Intent(RegisterActivity.this, Login_Activity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
【问题讨论】:
-
您能否编辑您的问题以显示来自您的
MyUsers节点的数据(作为文本,请不要截图)。您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
标签: javascript java firebase android-studio firebase-realtime-database