2017-02-21 63 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值。 –

相關問題