从Firebase

时间:2017-03-20 22:35:30

标签: android firebase firebase-realtime-database

我有一个使用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中完成?

1 个答案:

答案 0 :(得分:0)

删除for循环:

for (DataSnapshot child : dataSnapshot.getChildren()){}

简单地写一下:

StimmungAbfrage stimmungAbfrage = child.getValue(StimmungAbfrage.class);

它不会返回无效。