Заполнение списка данных из базы данных Firebase - PullRequest
0 голосов
/ 27 сентября 2018

Здравствуйте. У меня есть приложение для Android, которое извлекает данные из firebase.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    listViewProducts = (ListView)findViewById(R.id.listView);
    final List<Product> products = new ArrayList<Product>();

    database = FirebaseDatabase.getInstance();
    ref = database.getReference();
    ref.child("Sold").child("Item").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            Iterable<DataSnapshot> children = dataSnapshot.getChildren();

            for (DataSnapshot child : children) {
                Product value = child.getValue(Product.class);
                products.add(value);
            }
        }

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

        }
    });
    ArrayAdapter<Product> productAdapter = new ArrayAdapter<Product>(getApplicationContext(),
            android.R.layout.simple_list_item_1, products);
    listViewProducts.setAdapter(productAdapter);
}

В классе Product есть строка описания и количества, как в firebase.

   class Product {
       String Description;
       String Quantity;
   }

MyПриложение не выдает никаких ошибок, но просто закрывается при загрузке моих данных из firebase.

Почему происходит сбой моего приложения?Это не дает мне никаких ошибок, пожалуйста, помогите, господа.

введите описание изображения здесь

Редактировать: Для logCat

09-28 02:24:31.404 4679-4688/? E/ANDR-PERF-MPCTL: Invalid profile no. 0, total profiles 0 only
09-28 02:24:31.414 4679-4688/? E/ANDR-PERF-RESOURCEQS: Failed to apply optimization [4, 0]
09-28 02:24:31.444 2929-29436/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow
09-28 02:24:31.474 2929-29450/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow
09-28 02:24:31.474 2929-29451/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow
09-28 02:24:32.394 2929-29461/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow
09-28 02:24:32.614 7415-11587/? E/NetworkScheduler: Invalid component specified.
09-28 02:24:34.234 29437-29437/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mark.mobilethesis, PID: 29437
    com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: description
        at com.google.android.gms.internal.firebase_database.zzku.zzae(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzku.<init>(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzkt.zza(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzkt.zzb(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzkt.zza(Unknown Source)
        at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
        at com.example.mark.mobilethesis.MainActivity$1.onDataChange(MainActivity.java:59)
        at com.google.android.gms.internal.firebase_database.zzfc.zza(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzgx.zzdr(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzhd.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5619)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)
09-28 02:24:34.304 2929-3298/? E/InputDispatcher: channel '4f6cc30 com.example.mark.mobilethesis/com.example.mark.mobilethesis.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
09-28 02:24:34.324 2929-29470/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow
09-28 02:24:34.324 2929-29471/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow
09-28 02:24:34.344 2929-29472/? E/ActivityThread: Failed to find provider info for com.vivo.smartmultiwindow

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Здесь появляется ошибка -

Вот класс вашей модели

class Product {
    String Description;
    String Quantity;
}

Но тип данных Количества в вашей структуре базы данных является целым числом.

Итак,попробуйте изменить класс вашей модели как-

class Product {
    String Description;
    int Quantity;
}
0 голосов
/ 27 сентября 2018

По крайней мере, вы пропускаете вызов adapter.notifyDataSetChanged() в вашем onDataChange() методе:

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    Iterable<DataSnapshot> children = dataSnapshot.getChildren();

    for (DataSnapshot child : children) {
        Product value = child.getValue(Product.class);
        products.add(value);
    }

    productAdapter.notifyDataSetChanged();
}

Это, конечно, требует, чтобы вы хранили productAdapter где-нибудь, где метод onDataChangeможет получить к нему доступ.

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