2017-04-08 66 views
2
{ 
    "DIV_1" : { 
    "ACTINACT" : 1, 
    "COORDINATOR" : "10CA056", 
    "DIV_CODE" : "BSL", 
    "DIV_ID" : 1, 
    "DIV_NAME" : "Bhusawal", 
    "ERP_LOC_CODE" : "CRB", 
    "MTIME" : "2017-04-08T11:02:59", 
    "ZONE_ID" : "ZONE_1" 
    }, 

    "DIV_10" : { 
    "ACTINACT" : 1, 
    "COORDINATOR" : "06CS011", 
    "DIV_CODE" : "UMB", 
    "DIV_ID" : 10, 
    "DIV_NAME" : "Ambala", 
    "ERP_LOC_CODE" : "NRA", 
    "MTIME" : "2017-04-08T11:02:59", 
    "ZONE_ID" : "ZONE_3" 
    } 
} 

如何获取DIV_ID? 最初我需要比较关键(Ex :: Here DIV_10),然后需要获取DIV_NAME。 在此先感谢...如何从firebase数据中获取特定的键值?

回答

4

我假设DIV_1和DIV_10的父级是根。如果你有一个像“1”或“10” DIV_ID价值和需要得到的DIV_NAME值,那么你应该做这样的:

int divId = 1; // sample 
FirebaseDatabase.getInstance().getReference().orderByChild("DIV_ID").equalTo(divId) 
    .addValueEventListener(new ValueEventListener() { 
     ... onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot snapshot : dataSnapshot.getChildren()) { 
       String divName = snapshot.child("DIV_NAME").getValue(String.class); 
       // there you go 
       // and please check if you have more than 1 value as result 
      } 
     } 
     ... 
    } 

但是,如果你有一个像DIV_1DIV_10键值,那么它应该要容易得多。就像这样:

String key = "DIV_1"; 
FirebaseDatabase.getInstance().getReference(key) 
    .addValueEventListener(new ValueEventListener() { 
     ... onDataChange(DataSnapshot dataSnapshot) { 
      String divName = snapshot.child("DIV_NAME").getValue(String.class); 
      // note that in this sample, it doesn't need to loop, because: 
      // data you get here is one level deeper than data you got on first sample 
     } 
     ... 
    } 

希望这有助于

+0

仍然没有工作。在这里divName给空值。 – Surekha

+0

您使用第一个样品还是第二个?并且是DIV_1和DIV_10的父级确实是root? – koceeng

+0

提供空值的第二个示例 – Surekha

相关问题