您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何检查Firebase数据库中是否已经存在用户名?

如何检查Firebase数据库中是否已经存在用户名?

addListenerForSingleValueEvent是异步操作。onDataChange()设置回调后,代码将继续运行,而您尚未获取任何用户名。到您检查mSwitch值时,即使用户名确定,它也始终为false。

要使其正常工作,您应该移动

checkInformation();
if(mSwitch) {
    Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
    saveUserInformation();
    startActivity(intent);
}

onDataChange()回调的末尾。

此外,最好在查询文档之前先检查空字符串和长度。只是为了减少从数据库下载的无用数据。

但是由于for循环,它似乎仍然无法正常工作。像这样尝试:

mSwitch = true; // as its OK
for (DataSnapshot ds : dataSnapshot.getChildren()) {
  if(name.equals(ds.child("username").getValue(String.class))){
    mSwitch = false;
    Username.setError("Username Taken");
    Username.requestFocus();
    break;
  }
}

...
if (mSwitch) startActivity();
else showErrorToast();
其他 2022/1/1 18:30:47 有463人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶