#firebase #firebase-realtime-database
#firebase #firebase-база данных в реальном времени
Вопрос:
Я пытаюсь извлечь все продукты из структуры продукта в firebase в режиме реального времени. Когда я запускаю приложение, происходит сбой, но когда я комментирую «Product product = childSnapShot.GetValue(Product.class ); » он не извлекает никаких данных. Также, когда я пытаюсь извлечь данные из структуры пользователей, это работает.
Почему это происходит?
public class User_products_list extends AppCompatActivity {
private ListView listView;
private FirebaseDatabase database;
private DatabaseReference myRef;
//Define Array list
private ArrayList<String> arrayList = new ArrayList<>();
// Define a ListView to display the data
private ListView listViewdata;
// Define an ArrayAdapter for the list
private ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_data);
myRef = FirebaseDatabase.getInstance().getReference();
myRef = myRef.child("Products");
listViewdata = (ListView) findViewById(R.id.list_View);
// Set the ArrayAdapter to the ListView
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
listViewdata.setAdapter(arrayAdapter);
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for(DataSnapshot childSnapShot : snapshot.getChildren()) {
Product product = childSnapShot.getValue(Product.class);
arrayList.add(product.getName());
arrayList.add(product.getDescription());
arrayAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
Комментарии:
1. 1) «сбой приложения» Пожалуйста, найдите сообщение об ошибке и трассировку стека в выводе logcat и включите их оба в свой вопрос. 2) Мы не видим ваш
Product
класс. 3) Никогда не оставляйтеonCancelled
пустым. Как минимум, так и должно бытьpublic void onCancelled(@NonNull DatabaseError databaseError) { throw databaseError.toException(); }
.2. Пожалуйста, предоставьте информацию, которую запрашивал Фрэнк ван Пуффелен, и, пожалуйста, также ответьте с помощью @.