2017-02-21 1 views
0

Я хочу получить несколько дочерних элементов с автоматически сгенерированным дочерним элементом (дочерний элемент Install_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); 
    } 

Если это не то, что вы» ищите, пожалуйста, обновите свой вопрос, чтобы перефразировать проблему.

Update

Если вы хотите, чтобы поймать все 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

Как я могу получить значения дочернего url? –

+0

Это как раз то, что делает мой код: он получает значение свойства 'url'. Вы попробовали? Что он делает для вас? –

+0

Это именно то, что я имел в виду. но моя проблема в том, что я могу получить только одно значение URL-адреса, я также хотел бы получить первое значение URL-адреса в первом ребенке. –

Смежные вопросы