Как я могу получить имя узла в firebase? - PullRequest
0 голосов
/ 26 мая 2018

Я делаю меню для ресторана, прежде всего я хочу знать, правильна ли эта структура.

enter image description here

 "menu" : {
    "Steak taco" : {
      "Description" : "Roasted steak with chipotle sauce taco.",
      "Price" : 5
    }
  }

если его нет, как я могу улучшить его.Во-вторых, я хочу получить имя дочернего меню.например, я хочу получить имя тако Стейк, описание и цену

 DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
        final DatabaseReference refNom = ref.child("Locales");

final DatabaseReference refNom = ref.child("Locales");
            refNom.orderByChild("Nombre").equalTo(nombreLocal/*i'm getting this from a getExtra*/).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    lista.removeAll(lista);
    for (DataSnapshot ds1 : dataSnapshot.getChildren()) {

    String nomPlatillo = ds1.child("menu").getKey();
    String descPlatillo = ds1.child("menu")./*dish_name.child*/child("Description").getValue(String.class);
    double precio = ds1.child("menu")./*dish_name.child*/child("price").getValue(double.class);
    datosMenu menu = new datosMenu(nomPlatillo,descPlatillo,precio);
    lista.add(menu);
}

Это мой цикл:

Ответы [ 2 ]

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

Вы скучаете по ребенку.Между вашим узлом menu и клавишей Description есть еще один шаг в древовидной иерархии, Steak taco.Чтобы решить эту проблему, измените следующие строки кода:

String descPlatillo = ds1.child("menu")./*dish_name.child*/child("Description").getValue(String.class);
double precio = ds1.child("menu")./*dish_name.child*/child("price").getValue(double.class);

на

String descPlatillo = ds1.child("menu").child("Steak taco").getValue(String.class);
double precio = ds1.child("menu").child("Steak taco").getValue(Double.class);

Обратите внимание, что используется getValue(Double.class), а не getValue(double.class).

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

Поскольку в меню будет много элементов, я думаю, было бы лучше, если бы вы могли создать одинаковый массив элементов

{
  "menu": [
    {
      "item": "Steak taco",
      "desc": "",
      "price": "5",
      "image_url": ""
    },{
      "item": "pizza",
      "desc": "",
      "price": "4",
      "image_url": ""
    }
  ]
}

Таким образом, было бы легко выполнить итеративный анализ.

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