Я разработки Android приложений с помощью следующей Firebase базы данных таблицы:Firebase orderByChild и equalTo() запросы не работают
"posts": {
"id_1": {
"author": "google:111527135678918251124",
"color": -2960686,
"creationTime": 1427104145195,
"text": "my text",
"title": "my Title",
"type": 0,
"visible": true
},
"id_2": {
"author": "google:111527135678918251524",
"color": -2960686,
"creationTime": 1427104145195,
"text": "my text",
"title": "my Title",
"type": 2,
"visible": true
},
"id_3": {
"author": "google:111527135678918251124",
"color": -2960686,
"creationTime": 1427104145195,
"text": "my text",
"title": "my Title",
"type": 1,
"visible": true
}
}
Я хотел бы иметь возможность извлекать посты сортировать по child (отсортировано по типу в качестве примера) и иметь возможность извлекать все сообщения с определенным дочерним значением (тип = 1). Чтение документов Firebase кажется, что мне нужно написать следующий код, но я не получил желаемый результат.
Сортировать по типу
rootRef.child("posts").orderByChild("type")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
result = (HashMap<String, Post>) dataSnapshot.getValue();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
я получаю: неупорядоченный Карта сообщений
Type = значение
rootRef.child("posts").orderByChild("type").equalTo(1, "type").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
result = dataSnapshot.getValue();
result = result;
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
})
я получаю: null
. Моего Datasnapshot
объект имеет key = "posts"
и value = null
Вы хотите 'equalTo (1)' с одним аргументом. – Kato
Вы правы @Kato – Alessandro91