我有三个对象(Book,Listicle_modell和Feed_modell),我想在对象列表中进行检索。 但是我正在从Firebase数据库获取不存在的数据。
我的Firebase结构:
-userid
- key
-name2: Nova Conta
-title: The best music in the world;
-thumbnail: url;
enter image description here **我只有一个孩子,为什么我让Firebase给我三个对象? **。
在我的数据库中,我只有一个孩子,其值与Feed_modell匹配,但是我从书和书目中获取布局,或者没有在数据库中将这些对象(与book.class和listicle匹配的键)作为图片。节目:
问题是这样的:**这两个没有标题,没有缩略图,没有名称,只写了一个视图的图像被调用,但它们不存在,测试广告运行正常。
这是我的Android代码:
dbforFeed = FirebaseDatabase.getInstance().getReference("feedPosts").child(feedReceivingKey);
dbforFeed.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Feed_modell post = dataSnapshot.getValue(Feed_modell.class);
Book book = dataSnapshot.getValue(Book.class);
Listicle_modell lm = dataSnapshot.getValue(Listicle_modell.class);
feedList.addAll(Arrays.asList(post, book, new all_modell("ca-app-pub-4452407171570296~9731286762"), lm));
recyclerViewFeedAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged( DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved( DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved( DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled( DatabaseError databaseError) {
}
});
这是我的数据库结构
答案 0 :(得分:0)
使用NoSQL数据库时的一种重要做法是在节点(feedPosts)下具有相同类型的对象。根据您的评论,我了解到:
Feed_modell有。 Just Feed_modell具有这些字段。
现有对象的类型为Feed_modell
。正如我在您的代码中看到的那样,您试图从同一个dataSnapshot
对象中获取三个不同的对象Feed_modell
,Book
和Listicle_modell
,这是不正确的。单个dataSnapshot
可以转换为单个对象类型。要解决此问题,请进行以下更改:
List<Listicle_modell> feedList = new ArrayList<>();
//Feed_modell post = dataSnapshot.getValue(Feed_modell.class);
//Book book = dataSnapshot.getValue(Book.class);
Listicle_modell lm = dataSnapshot.getValue(Listicle_modell.class);
feedList.add(lm);
recyclerViewFeedAdapter.notifyDataSetChanged();
确保适配器的类型也为Listicle_modell
。