Я хочу получить все значения из ключа внутри ключа категории.
Я использую AndroidX, Gradle 5.1.1 и работаю со следующей структурой:
db-name
category1
unique_random_id: value
unique_random_id2: value_value
category2
unique_random_id: value
unique_random_id2: value_value
ListView lv;
FirebaseDatabase fb;
DatabaseReference dr;
ArrayList<Article> list;
ArrayAdapter<Article> adapter;
Article article;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.articlelist);
Intent intent = getIntent();
Bundle gotExtras = intent.getExtras();
final TextView articleCatShow = (TextView)findViewById(R.id.articleCatShow);
articleTopCat.setText(gotExtras.getString("cat"));
article = new Article();
lv = (ListView)findViewById(R.id.listView);
fb = FirebaseDatabase.getInstance();
dr = fb.getReference(gotExtras.getString("cat"));
list = new ArrayList<>();
adapter = new ArrayAdapter<Article>(this, R.layout.article_each, R.id.articleTxt, list);
dr.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds: dataSnapshot.getChildren()) {
adapter.add(ds.getValue(Article.class));
lv.setAdapter(adapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Зависимости Gradle:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.google.firebase:firebase-core:17.2.0'
implementation 'com.google.firebase:firebase-database:19.1.0'
}
Я ожидалчто у списка есть данные.
Я также получаю эту ошибку, когда запускаю приложение и нажимаю кнопку, которая будет собираться с экстрами Can't convert an object of type java.lang.String to type <my-hidden-package-name>