Как извлечь все данные из Firebase на страницу, используя просмотр списка? - PullRequest
0 голосов
/ 30 апреля 2019

он показывает ноль при извлечении данных из firebase с использованием listview?Я хочу получить все значения на странице]

public class viewpgdetails extends AppCompatActivity {

    private DatabaseReference mDatabase;
    private FirebaseDatabase database;
    private TextView ft_email, ft_address, ft_fact, ft_owner, ft_phone, ft_pin, ft_rent, ft_pgname;
    private FirebaseStorage fstorage;
    private ListView list_view;
    private StorageReference storageRef;
    private ImageView view_img1, view_img2, view_img3, view_img4, view_img5;


    //FirebaseListAdapter adapter;
    public static Context context;
    ArrayList<String> list;
    ArrayAdapter<String> adapter;
    user info;


   // final String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewpgdetails);
        FirebaseDatabase database = FirebaseDatabase.getInstance();

       // String key=mDatabase.getKey();
        DatabaseReference mDatabase = database.getReference().child("USER");
        list = new ArrayList<>();
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);


        list_view = (ListView) findViewById(R.id.list_view);

        mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


                for (DataSnapshot ds: dataSnapshot.getChildren()) {


                        user info =ds.getValue(user.class);
                        //adapter.add(String.valueOf(info.getOwner()+"   "));
                     // adapter.add(String.valueOf(info.getEmail()));
                    adapter.add(String.valueOf(info.getAddress()));

                                //+ info.getOwner().toString() + "    " + info.getPhone().toString() + "   " + info.getAddress().toString() + "    " + info.getPin().toString() + "  " + info.getFact().toString() + "   " + info.getRent().toString());

                    }

                list_view.setAdapter(adapter);

                // showData(dataSnapshot);

                //Toast.makeText(viewpgdetails.this, dataSnapshot.toString(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast.makeText(viewpgdetails.this, "failed to get data", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

1 Ответ

0 голосов
/ 30 апреля 2019

Я добавил свою структуру базы данных ниже Из документации Firebase:

Событие child_added обычно используется при получении списка элементов из базы данных..

Так что я думаю, что вы должны написать что-то вроде:

ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {
      user info = dataSnaphot.getValue(user.class);
      adapter.add(String.valueOf(info.getAddress()));
}

Где ref должно быть ссылкой на родительскую базу данных всех пользователей, что-то вроде: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...