2017-02-21 68 views
0

我想用自动生成的子项(Estab_url子项)检索多个子项。这是我的代码。所有我可以检索是一个孩子,它的随机如何绕过唯一标识并检索多个自动生成的子项

Our Database Firebase

final DatabaseReference establishments = database.getReference("establishments"); 


    establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       if (dataSnapshot.hasChildren()) { 
       // String value = dataSnapshot.getValue(String.class); 
        String sd = dataSnapshot.getKey(); 
        Name.setText(sd); 
       } 

      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

回答

0

如果你正在寻找读取URL值每个孩子:

establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     String url = dataSnapshot.child("url").getValue(String.class); 
     Name.setText(url); 
    } 

如果不是你”重新寻找,请更新您的问题来重新解释问题。

更新

如果您想捕获所有的URL列表中,你会设置列表中的听众外,然后将每个URL添加到它,因为它进来:

List<String> urls = new LinkedList<String>(); 
establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     String url = dataSnapshot.child("url").getValue(String.class); 
     urls.add(url); 
     // TODO: do something with the up-to-date list of URLs 
    } 

但请注意,您仍然无法使用侦听器外部以外的列表。任何需要列表最新内容的代码都需要从内部调用/触发(在这种情况下)onChildAdded

+0

我如何获取子网址的值? –

+0

这正是我的代码所做的:它获得了“url”属性的值。你试过了吗?它为你做了什么? –

+0

这正是我的意思。但我的问题是,我只能得到一个url的值,我也想在第一个孩子中获得第一个url值。 –