Извлечение данных в текстовое представление из базы без родительского ключа - PullRequest
0 голосов
/ 12 мая 2018

Это база данных пожарной базы

Здесь я хочу искать детали, используя child без использования родительского ключа. В соответствии с этой базой данных, я хочу получить цену и категорию, используя Имя, без использования родительского ключа ("kjhsfkgkrlhg"), ("получить цену, категория, где Name =" super Creamcracker ")

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Чтобы решить эту проблему, используйте следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference itemsRef = rootRef.child("Items");
Query query = itemsRef.orderByChild("Name").equalsTo("super Creamcracker");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String category = ds.child("Category").getValue(String.class);
            long price = ds.child("Price").getValue(Long.class);
            Log.d("TAG", category + " / " + price);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
query.addListenerForSingleValueEvent(valueEventListener);

Таким образом, ds содержит список результатов. Даже если есть только один результат, ds будет содержать список из одного результата. Таким образом, результат будет:

200g / 200
0 голосов
/ 12 мая 2018

Сначала вы создаете ссылку на базу данных

DatabaseReference itemRef = FirebaseDatabase.getInstance().getReference("Items");

тогда

String itemName = "super Creamcracker"; 

Query query = itemRef.orderByChild("Name").startAt(itemName).endAt(itemName+ "\uf8ff");

    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot data : dataSnapshot.getChildren()) {
                //if you dont have class for item
                String price = data.child("Price").getValue().toString();
                String category = data.child("Category").getValue().toString();


                //if you have class, lets say Item.java
                Item item = data.getValue(Item.class);

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...