Firebase doesn't support ordering by multiple queries.
Queries can only order by one key at a time. Calling orderByChild()
multiple times on the same query throws an error.
Try ordering by a simple query an then filter the data, sample:
Query searchAllQuery = usersRef
.orderByChild("fullname")
.startAt(searchBoxInput.toUpperCase())
.endAt(searchBoxInput.toLowerCase() + "\uf8ff" )
searchAllQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
// filter your data here by username and country
User user = dataSnapshot.getValue(User.class);
if (user.getUsername().contains('wei') || user.getCoutnry().contains('usa')) {
// add the user to your list maybe?
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});