0
我想用addListenerForSingleValueEvent方法在數據庫中檢查它,但是當我調試代碼時,偵聽器被跳過,這是我的偵聽器代碼。檢查用戶是否存在於Firebase數據庫中
mTheReference = FirebaseDatabase.getInstance().getReference();
mUsersReference = mTheReference.child("Users");
mUsersReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
User post = postSnapshot.getValue(User.class);
String username = post.getUsername();
if (username.equals(mUserView.getText().toString())) {
alreadyRegisteredAccount++;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
if (alreadyRegisteredAccount != 0) {
mUserView.setError("Usuario ya registrado, intenta de nuevo.");
} else {
User user = new User();
user.setUsername(mUserView.getText().toString());
user.setPassword(mPasswordView.getText().toString());
mUsersReference.push().setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(getApplicationContext(), "YAAAY!", Toast.LENGTH_LONG).show();
}
});
}
我不知道爲什麼它的跳躍,我需要的東西,讓一旦用戶嘗試註冊一個新的username.This是數據樹我檢查用戶是否存在:
{
users:
{
-KjGdQAZEfJ-qR5pM0Ko:
{
username : fmigg
password : broxton1
}
-KjGq7AghI9ftiX6Ih-q:
{
username : aston
password : creative123
}
}
}
雖然OP應該在樹中聽低一些,但這不是代碼中問題的原因。它附加了一個值監聽器並循環了這些孩子。雖然浪費,它會起作用。 –