Чтобы избавиться от этого пути, да, есть аналогичный вопрос о SO, но он не объясняет, в чем моя ситуация требует, я думаю.Android Firebase: как просто получить все значения под определенным ключом?
В базе данных Firebase в реальном времени, у меня есть JSon дерево, которое выглядит примерно так:
users{
userid{
templates{
templateName1{ // example name that the user saves their template as.
// each template is an ArrayList
//templateName1 ArrayList contents
}
templateName2{
//templateName1 ArrayList contents
}
templateName2{
//templateName1 ArrayList contents
}
}
}
}
Мне нужно, чтобы иметь возможность перечислить каждый шаблон в «шаблоны», а в другое время просто получить ArrayList значение конкретного шаблона. Однако я не могу понять, как это сделать.
Из того, что я гугл/прочитать в документации, мой код должен выглядеть примерно так:
DatabaseReference mTemplateRef = mDatabase.child("users").child(uid).child("templates");
mTemplateRef.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getChildren();
// somehow get the values here
}
});
Когда я отладка, и введите dataSnapshot.getChildren выражения данных() я могу увидеть содержимое как и ожидалось, но я не могу получить эти данные в своем приложении. Есть идеи?
Хм, у меня все еще проблемы. Как это позволит мне перечислить все ArrayLists под ключевыми «шаблонами»? Может быть, есть отдельный ArrayList, к которому добавляется каждая итерация? Как этот параметр ArrayList соответствует вашему шаблону? Я также получаю эту ошибку: com.google.firebase.database.DatabaseException: Невозможно преобразовать объект типа java.util.ArrayList, чтобы напечатать com.app.template_editor.template – theRealOne
Я собираюсь оставить свой предыдущий комментарий вверх в случае, если вы видите что-то очевидное, но я думаю, что знаю, что делать, я просто не смогу проверить его до сегодняшнего дня после школы. Я обновлю, если это сработает – theRealOne
Итак, прямо сейчас я сделал то, что вы сказали, но я получаю сообщение об ошибке «Я не могу преобразовать объект типа ArrayList, чтобы набирать Template», при этом Template является классом, который вы предоставили. – theRealOne