2016-09-26 143 views
1

我对火力点在以下格式的JSON:Android的火力地堡过滤数据

"products" : { 
    "-KS9-I-mz7k_4IqYMQdX" : { 
     "brand" : "champion", 
     "name" : "x2 style", 
     "users" : { 
     "oGNKfltdMsVAfjDN63QjjITGnhw1" : { 
      "-KSIpwMZxesepEdNN1CW" : { 
      "-KS9IQkdC0-lRYp0hzAN" : true 
      } 
     } 
     } 
    }, 
    "-KS9-IkweDZlNf_qbbrX" : { 
     "brand" : "champion", 
     "name" : "wtab 709 tab", 
     "users" : { 
     "NKfltdMsVAfjDN63QjjITGnjdjjj" : { 
     "-KSIpwMZxesepEdNN1CW" : { 
      "-KS9IQkdC0-lRYp0hzAN" : true 
      } 
     } 
     } 
    } 
} 

我需要让所有有此键oGNKfltdMsVAfjDN63QjjITGnhw1用户。我尝试过关键,价值和孩子的过滤。但nothings工程。

+0

既然你已经尝试了一些东西,你能分享一些没用的代码吗?至少会向我们展示您使用的是什么技术,但它也可能使我们更容易回答。 –

回答

0

参考文档通过您的数据的快照迭代的一个例子:

myTopPostsQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) { 
      // TODO: handle the post 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     // Getting Post failed, log a message 
     Log.w(TAG, "loadPost:onCancelled", databaseError.toException()); 
     // ... 
    } 
}); 

这里又是那个例子,但这个时候,我试图用你的代码,以更好地说明该解决方案你:

mDatabase.child("products").addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshotLevel1) { 
     for(DataSnapshot dataSnapshotLevel2: dataSnapshotLevel1.getChildren()){ 
      for(DataSnapshot dataSnapshotLevel3: dataSnapshotLevel2.getChildren()){ 
       if(child.getKey().equals("users")){ 
        for(DataSnapshot deeperData: data.getChildren()){ 
         if(child.getKey().equals("oGNKfltdMsVAfjDN63QjjITGnhw1")){ 
          //Here is where you do whatever you need to do now that you found your child. 
         } 
        } 
       } 
      } 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     Log.w(TAG, "getUser:onCancelled", databaseError.toException()); 
     // ... 
    } 
});