Модельный класс возвращает ноль - PullRequest
0 голосов
/ 24 февраля 2019

[класс модели возвращает ноль, данные поступают из базы данных Firebase, но после получения imageUrl дает ноль.

На самом деле я пытаюсь получить URL-адреса изображений из базы данных, которые были ранее сохранены.

    firebaseDatabase=FirebaseDatabase.getInstance();   

    databaseReference=firebaseDatabase.getInstance().
    getReference("Catagories");
    mupload=new ArrayList<>();`


     databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for(DataSnapshot post : dataSnapshot.getChildren())
        {
            Upload upload=post.getValue(Upload.class);
            mupload.add(upload);
                        }
            customQuoteAdapter=new CustomQuoteAdapter( Images.this,     

          mupload);
            recyclerView.setAdapter(customQuoteAdapter);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Toast.makeText(getApplicationContext(),   
  "ERROR"+databaseError.getMessage(), Toast.LENGTH_SHORT).show();

        }
    });

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

У вас есть уровень bussiness (sic) в вашем JSON, который вы не обрабатываете в своем коде.Самый простой способ исправить это - подключить слушателя к этому узлу bussiness:

databaseReference=firebaseDatabase.getInstance().getReference("Catagories/Bussiness");
mupload=new ArrayList<>();`


 databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for(DataSnapshot post : dataSnapshot.getChildren()) {
            Upload upload=post.getValue(Upload.class);
            mupload.add(upload);
        }
        customQuoteAdapter=new CustomQuoteAdapter( Images.this, mupload);
        recyclerView.setAdapter(customQuoteAdapter);
    }
    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Toast.makeText(getApplicationContext(), "ERROR"+databaseError.getMessage(), Toast.LENGTH_SHORT).show();

    }
});

Если вы хотите получить все URL-адреса для всех узлов в Categories, вам нужно добавить циклвнутри onDataChange.Что-то вроде:

databaseReference=firebaseDatabase.getInstance().getReference("Catagories");
mupload=new ArrayList<>();`


 databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for(DataSnapshot categorySnapshot : dataSnapshot.getChildren()) {
            for(DataSnapshot linkSnapshot : categorySnapshot.getChildren()) {
                Upload upload=linkSnapshot.getValue(Upload.class);
                mupload.add(upload);
            }
        }
        customQuoteAdapter=new CustomQuoteAdapter( Images.this, mupload);
        recyclerView.setAdapter(customQuoteAdapter);
    }
    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Toast.makeText(getApplicationContext(), "ERROR"+databaseError.getMessage(), Toast.LENGTH_SHORT).show();

    }
});
0 голосов
/ 24 февраля 2019

Должно ли это быть?

public String getImageUrl() {
    return this.imageUrl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...