Приложение не показывает данные и дает сбой через несколько секунд - PullRequest
0 голосов
/ 07 июня 2019

Я новичок в разработке Android с использованием базы данных Firebase. Я пытаюсь получить данные из базы данных Firebase в реальном времени и сохранить их в виде списка. Но когда я запускаю приложение, оно запускается, но данных нет, и через несколько секунд происходит сбой. Можете ли вы помочь мне, предложив, где я не прав?

Я пробовал этот вид кода в Java-файле. И код, показанный ниже, относится к классу mainactivity без каких-либо ошибок импорта или опечатки.

private FirebaseDatabase fbdatabase;
     private DatabaseReference dbref;
     private ListView lstvwdata;
     private ArrayList<String> alist = new ArrayList<>();
     private ArrayAdapter<String> aadapt;
     String ad_lst_val;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         fbdatabase =FirebaseDatabase.getInstance("https://lstdatafetch.firebaseio.com/");
         dbref = fbdatabase.getReference("Orders");
         lstvwdata =(ListView)findViewById(R.id.lstview);
         final ArrayAdapter<String> aadapt = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,alist);
         lstvwdata.setAdapter(aadapt);
         dbref.addChildEventListener(new ChildEventListener() {
             @Override
             public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                 ad_lst_val = dataSnapshot.getValue(String.class);
                 alist.add(ad_lst_val);
                 aadapt.notifyDataSetChanged();
             }

             @Override
             public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

             }

             @Override
             public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

             }

             @Override
             public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

             }

            @Override
             public void onCancelled(@NonNull DatabaseError databaseError) {

             }
         }); }

Я просто хочу получить данные и поместить в просмотр списка.

1 Ответ

0 голосов
/ 07 июня 2019

Если вы хотите отобразить список заказов из данных Firebase, я использую addValueEventListener в моем приложении.

ArrayList<String> ordersList = new ArrayList<>();

databaseRef.child("Orders").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        ordersList.clear();
        for (DataSnapshot data : dataSnapshot.getChildren()){
            ordersList.add(data.getKey);
        }

        //Update Your Adapter here

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.w(TAG, "getUser:onCancelled", databaseError.toException());
        // ...
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...