我想使用两个嵌套的DataSnapshot。在代码中看到的第一件事是从数据库中提取值DbValue,然后查看DbValue是否与我在微调器中选择的数据匹配。那个spinner.with getSelectedItem(),我正在正确地从数据库中提取DbValue值。我检查了日志记录。但是,如果没有,那就不行了。目前,这两个数据必须相等,但不能落在if内。
final DatabaseReference dbProducts = FirebaseDatabase.getInstance().getReference("0").child("titles");
final DatabaseReference dbProductsRooms = FirebaseDatabase.getInstance().getReference("0").child("titles").child("0");
dbProductsRooms.child("places")
.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String DbValue = (String) dataSnapshot.getValue();
if (DbValue == String.valueOf(spinner.getSelectedItem())) {
dbProducts.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
productList = new ArrayList<>();
if (dataSnapshot.exists()) {
for (DataSnapshot productSnapshot : dataSnapshot.getChildren()) {
Product p = productSnapshot.getValue(Product.class);
productList.add(p);
}
adapter = new ProductsAdapter(MainActivity.this, productList);
recyclerView.setAdapter(adapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:0)
更改此行-
if (DbValue == String.valueOf(spinner.getSelectedItem()))
到
if (DbValue.equals(spinner.getSelectedItem().toString()))