Я делаю меню для ресторана, в первую очередь хочу узнать, верна ли эта структура.
"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);
}
Это мой цикл:
Теперь это откровенно отредактировано




Поскольку в меню будет много элементов, я думаю, было бы лучше, если бы вы могли создать подобный массив элементов
{
"menu": [
{
"item": "Steak taco",
"desc": "",
"price": "5",
"image_url": ""
},{
"item": "pizza",
"desc": "",
"price": "4",
"image_url": ""
}
]
}
Таким образом, будет легко выполнять итеративный синтаксический анализ.
Вы скучаете по ребенку. Между вашим узлом 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).
я знаю это, но имя этого ребенка будет другим, потому что я буду ставить разные блюда, и имя будет изменено, поэтому я хочу получить имя этого узла (в этом примере Taco Steak) с их соответствующими описание и цена ..
В этом случае вам следует использовать .child(yourVariable) вместо .child("Steak taco"). В котором yourVariable содержит все, что вам нужно для создания ссылки. Вы не можете оставить его пустым.
Да, но приложение не знает названий блюд, поэтому я не могу создать переменную для каждого названия блюда, я хочу получить имя этого блюда / узла динамически, потому что имена будут будь другим
В этом случае вам нужно сохранить значение этого блюда в переменной при создании этого конкретного блюда. Таким образом, вы сможете использовать его позже в своей справке, верно?
Все в порядке? Вы решили проблему?
ну, приложение это просто для презентации, поэтому я создал предопределенные объекты для размещения в меню, я не мог придумать, как получить данные из firebase.
Расскажите, пожалуйста, как получить
dataSnapshotиз базы данных, поскольку от этого зависит правильное решение.