Reputation: 1371
So this is how my database looks like. Each user can add his 3 best players that are stored in userId/My Players/ path as a Map<"Best Players", Player> as it is shown here:
List<String> list = new ArrayList<>();
list.add(first.getText().toString());
list.add(second.getText().toString());
list.add(third.getText().toString());
Players players = new Players(list);
Map<String, Object> map = new HashMap<>();
map.put("Best Players", players);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
FirebaseDatabase database = FirebaseDatabase.getInstance();
if (user != null) {
DatabaseReference myRef = database.getReference().child("Users").child(user.getUid()).child("My Players");
myRef.setValue(map);
}
Player object contains ArrayList with 3 String objects. So, I would like to go through all users in database and search for each users 0th or 1st or 2nd player from his Best Players list. Any advice how to do that?
Upvotes: 0
Views: 2847
Reputation: 872
you can use code given below: change parameters as per your database
databaseReference.child(Table_Dashboard).orderByChild("title").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
spin = new ArrayList<String>();
// spin.add("Dashboard");
for (DataSnapshot spinnerSnapshot : dataSnapshot.getChildren()) {
String areaName = spinnerSnapshot.child("title").getValue(String.class);
spin.add(areaName);
}
// spin.remove("Family Details");
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(Dashboard.this, android.R.layout.simple_spinner_item,
spin);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
dismissprogress();
}
@Override
public void onCancelled(DatabaseError databaseError) {
dismissprogress();
}
});
Upvotes: 0
Reputation: 138944
In order to display those lists, please use this code:
ListView listView = (ListView) findViewById(R.id.list_view);
ArrayList arrayList = new ArrayList<>();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(userId).child("My Players").child("Best Players").child("list");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
@SuppressWarnings("unchecked")
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
String firstList = (String) map.get("0");
String secondList = (String) map.get("1");
String thirdList = (String) map.get("2");
arrayList.add(firstList + ", " + secondList + ", " + thirdList);
arrayAdapter = new ArrayAdapter<>(this, R.layout.list, arrayList);
listView.setAdapter(arrayAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(eventListener);
Upvotes: 1