我正在为餐馆制作菜单,首先我想知道这种结构是否正确。
"menu" : {
"Steak taco" : {
"Description" : "Roasted steak with chipotle sauce taco.",
"Price" : 5
}
}
如果不是,我该如何改进呢。 其次,我想要检索子菜单名称。例如,我想获得Steak taco名称,描述和价格
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);
}
这是我的循环:
答案 0 :(得分:1)
由于菜单会有很多项目,我想如果你可以创建类似的项目数组会更好
toQueueRequest.onreadystatechange = function () {
if (toQueueRequest.readyState === 4 && toQueueRequest.status === 200) {
this.$.processingDialog.close();
this.$.confirmDialog.open();
} else if (toQueueRequest.readyState === 4){
this.$.processingDialog.close();
this.$.errorMsg="Ha ocurrido un error!"
this.$.errorDialog.open();
}
};
//var data = JSON.stringify({"RestoCode": window.location.pathname, "Fingerprint": this.finger});
if (this.sector == "Cualquiera") {this.sector = null;};
var data = JSON.stringify({"RestoCode": restoCode, "Fingerprint": finger, "PhoneNumber": this.cellno, "PersonalName": this.name, "QuantityPeople": this.pas, "SectorId": this.sector});
toQueueRequest.send(data);
this.$.reviewDialog.close();
this.$.processingDialog.open();
这样可以很容易地迭代解析。
答案 1 :(得分:1)
你想念一个孩子。在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)
。