调用两个DataSnapshot函数

时间:2019-07-01 11:22:16

标签: android firebase-realtime-database

我想使用两个嵌套的DataSnapshot。在代码中看到的第一件事是从数据库中提取值DbValue,然后查看DbValue是否与我在微调器中选择的数据匹配。那个spinner.with getSelectedItem(),我正在正确地从数据库中提取DbValue值。我检查了日志记录。但是,如果没有,那就不行了。目前,这两个数据必须相等,但不能落在if内。

Firebase

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) {
                }
            });

1 个答案:

答案 0 :(得分:0)

更改此行-

if (DbValue == String.valueOf(spinner.getSelectedItem())) 

if (DbValue.equals(spinner.getSelectedItem().toString()))