Я пытаюсь разработать простое приложение для изучения базы данных Firebase.
Вот моя схема базы данных в реальном времени
mydirectory
-contact_list
-LOyDhepB_IZlM6lZtko
mobileNumber: "9385746982"
name: "Jay"
-LOyDhetiPHalLhXrOaU
mobileNumber: "8000478912"
name: "Ravi"
-LOyDhetiPHalLhXrOaV
mobileNumber: "123456789"
name: "ABC"
-LOyDheubruATyyBp8dG
mobileNumber: "023456879"
name: "XYZ"
Я хочу получить список данных, упорядоченный по name
Поэтому я использую этот фрагмент для загрузки данных в свое приложение для Android
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("contact_list").orderByChild("name").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, Object> objectMap = (HashMap<String, Object>) dataSnapshot.getValue();
Master.personList.clear();
for (Object obj : objectMap.values()) {
if (obj instanceof Map) {
Map<String, Object> mapObj = (Map<String, Object>) obj;
String name = (String) mapObj.get("name");
String mobileNumber = (String) mapObj.get("mobileNumber");
Person person = new Person(name, mobileNumber);
Master.personList.add(person);
populateListView();
}
}
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w("ANDs", "Failed to read value.", error.toException());
}
});
Но он не сортирует данные на основеалфавитный порядок name
ключ.Я делаю что-то не так или что-то упустил?
PS
У меня также есть правила индексации ( ref ),но результат все тот же!Он не сортирует данные по алфавиту.
{
"rules": {
"mydirectory": {
"contact_list": {
"$user_id": {
".indexOn": ["name"]
}
}
},
".read": true,
".write": true
}
}
Я пробовал много вещей из других сообщений, подобных этой теме, но ничего не работает!Пожалуйста, не делайте это дубликатом, пожалуйста, помогите мне решить это!