я хочу, чтобы мое приложение (IOS & Android) для отображения некоторых новостей и эта лента новостей может быть в том числе текста & 1 изображение (быть дисплеем с точки зрения изображения) или текст и многократные изображения не указаны NO. (будет отображаться в gridview) в зависимости от свойства объекта.Как структурировать объект, чтобы получить вложенные FireBase данные
Я попытался реализовать эту функцию, как показано ниже, но это не сработало, и я надеюсь, что кто-то пройдет через эту проблему, я проверил много вопросов, но я думаю, что не соответствует моему делу.
ее моя firebase структура данных и мой объект для Android:
public class object {
String text;
String type;
List<images> images;
public object(){
}
public String gettext(){return text;}
public String gettype(){return type;}
public List<images> getimages(){return images;}
}
class images{
String images;
public images(){
}
public String getimages(){return images;}
}
и извлечения деятельности:
public class MainActivity extends AppCompatActivity {
DatabaseReference database;
List<object> objectsList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database = FirebaseDatabase.getInstance().getReference();
loaddata();
}
private void loaddata(){
Query query = database.child("news");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (objectsList!=null){
objectsList.clear();
}
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()){
object object = dataSnapshot1.getValue(object.class);
Log.i("&&&&&&& Images &&&&&",object.gettext());
objectsList.add(object);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("%%%%%%%% ERROR ",databaseError.getMessage());
}
});
}
}
любые предложения были бы оценены
ее не работает, нулевые объекты исключения –
Просто заметили, что я не обновлял 'getimages' в этом коде ниже (сделал только сейчас) .... предположит, что вы, вероятно, сделали это изменение? Можете ли вы добавить полную ошибку, которую видите, –
Ожидаемая карта при десериализации, но получила класс java.util.ArrayList при попытке получить моментальный снимок ... object object = dataSnapshot1.getValue (object.class); –