我有一个使用Firebase作为数据存储的应用程序。我们使用Tier Pattern将业务逻辑(和数据访问逻辑)与用户界面分开。这就是我们在与其他数据存储的其他项目中所做的事情。
作为示例,我们想要从Firebase读取数据,然后在名为Stimmungsabfrage
的类中设置。然后我们想要处理这些数据,并将它也显示在活动中的控制器(textviews,listviews)中(在我们的UI中)。
在我们的数据访问类中,我们使用以下函数来检索数据:
root.child(strKey).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
// Hier bekommst du dann letztlich die Stimmungsabfrage
StimmungAbfrage stimmungAbfrage = child.getValue(StimmungAbfrage.class);
}
}})
此功能的问题在于它确实返回void
。因此,我们无法将检索到的对象stimmungAbfrage
返回给用户界面。
唯一的方法是在此功能中分配用户界面控件,我们要避免使用,因为我们希望将UI与数据访问逻辑分开。
如何在Firebase中完成?
答案 0 :(得分:0)
删除for循环:
for (DataSnapshot child : dataSnapshot.getChildren()){}
简单地写一下:
StimmungAbfrage stimmungAbfrage = child.getValue(StimmungAbfrage.class);
它不会返回无效。