!https://photos.app.goo.gl/8axsEgMJQAsBFnJF9
因此,我试图将我的字符串与数据库进行比较,我想检查用户给定的字符串在数据库中是否存在。但是当我编写代码时,输出始终为no。我同时尝试了ValueEventListener和ChildEventListener。
那我怎么得到所需的结果。
parentRef = FirebaseDatabase.getInstance().getReference();
parentRef.child("Companies").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if ((dataSnapshot.child("jaq").exists())) {
Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(MainActivity.this, "No", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if ((dataSnapshot.child("jaq")).exists()) {
Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(MainActivity.this, "No", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
答案 0 :(得分:1)
在valueEventListener中,尝试以下操作:
DatabaseReference reference = database.getReference("Companies");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
if(childSnapshot.child("jaq").exists()){
Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
在这里循环遍历dataSnapshot,然后检查数据库中是否存在子jaq
。