2017-01-08 4 views
0

В моей Firebase у меня есть база данных для приложения. Скажем, это мой Firebase JSON:Получите определенного ребенка от Firebase

{ 
    "Users" :{ 
    "User1":{ 
     "City": "Genk" 
    } 
    ,"User2":{ 
     "City": "Hasselt" 
    } 
    ,"User3":{ 
     "City": "Genk" 
    } 
    ,"User4":{ 
     "City": "As" 
    } 
    ,"User5":{ 
     "City": "Genk" 
    } 
    } 
} 

Теперь то, что я хочу, это ArrayList со всеми пользователями с городом . Как это возможно? Я хочу использовать этот ArrayList для размещения конкретных пользователей, которые живут в городе в ListView.

+0

Проверить эту ссылку [https://firebase.google.com/docs/database/android/lists-of-data #sorting_and_filtering_data] (https://firebase.google.com/docs/database/android/lists-of-data#sorting_and_filtering_data). Особенно в разделе «Сортировка и фильтрация». У него есть все, что нужно – koceeng

+0

@koceeng Я прочитал его, и я попробовал, но он не работает. Мне нужно получить «город» от каждого ребенка в базе данных и заказать его в ListView –

+3

Похоже, вы что-то пробовали и не можете заставить его работать. В этом случае: используйте минимальный код, который воспроизводит проблему, в которой вы застряли. У вас гораздо больше шансов получить помощь. –

ответ

0

Я предлагаю вам создать другого ребенка из корня, как «UsersCity», таким образом вы можете просто вызвать этот ребенок и получить его в своем списке. Вот что я сделал:

String key = mDatabase.child("post").push().getKey(); 
UserPost userPost = new UserPost(author,uid,setemoticon,postData,mDate,latlng); 
Map<String, Object> postValues = userPost.toMap(); 

Map<String, Object> childUpdates = new HashMap<>(); 
       childUpdates.put("/post/" + key,postValues); 
       childUpdates.put("/user-post/" + uid + "/" + key, postValues); 

mDatabase.updateChildren(childUpdates); 

Вот вывод Json для этого:

{ 
"post" : { 
"-KcGVPpS9CTWPNax61wf" : { 
    "authorName" : "Test 1", 
    "dateCreated" : { 
    "dateCreated" : 1486352395887 
    }, 
    "postDescription" : "sample post", 
    "postEmotion" : 2130837658, 
    "userId" : "KTcgauWoJugXUsq6TAgrdqUvVYm1" 
} 
}, 
"user-post" : { 
"KTcgauWoJugXUsq6TAgrdqUvVYm1" : { 
    "-KcGVPpS9CTWPNax61wf" : { 
    "authorName" : "Test 1", 
    "dateCreated" : { 
     "dateCreated" : 1486352395887 
    }, 
    "postDescription" : "sample post", 
    "postEmotion" : 2130837658, 
    "userId" : "KTcgauWoJugXUsq6TAgrdqUvVYm1" 
    } 
} 
}, 
//This child node is for users where you'll want to get the $uid to use for creation of other child nodes. 
"users" : { 
"KTcgauWoJugXUsq6TAgrdqUvVYm1" : { 
    "fullname" : "Test 1" 
    } 
} 
} 

Я просто новичок программист, и я знаю, что мой ответ не самый лучший, но я надеюсь, что это может помочь вам с твоя проблема. :)

+0

И ох! Значение переменной mDatabase является основным корнем вашей базы данных. –

0

просто принести конкретные данные узла и его работы идеально подходит для меня

mFirebaseInstance.getReference("yourNodeName").getRef().addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 


     for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) { 
      Log.e(TAG, "======="+postSnapshot.child("email").getValue()); 
      Log.e(TAG, "======="+postSnapshot.child("name").getValue()); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError error) { 
     // Failed to read value 
     Log.e(TAG, "Failed to read app title value.", error.toException()); 
    } 
}); 
Смежные вопросы