【发布时间】:2018-02-01 09:00:24
【问题描述】:
考虑下面的sn-p代码:
public ArrayList<GenericModel> getList(GenericModel model) {
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ArrayList<GenericModel> genericModels = new ArrayList<>();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
GenericModel genericModel = postSnapshot.getValue(model.getClass());
genericModels.add(genericModel);
}
Collections.sort(genericModels, (o1, o2) -> o1.getDate().compareTo(o2.getDate()));
return genericModels;
}
@Override
public void onCancelled(DatabaseError databaseError) {
return null;
}
};
mDatabase.child(model.getTableName()).child(mUser.getUid()).addListenerForSingleValueEvent(postListener);
}
目前这段代码不起作用,我只能通过回调来解决这个问题。我不希望那样。我想要一个返回 ArrayList 的方法。我怎么能重写这个?使用 Kotlin 也是一种选择。
【问题讨论】:
-
发布你的数据库截图!
-
亲爱的 Rahul,问题是如何使用返回 ArrayList
的方法对其进行重新编程。代码在回调中运行良好。你想让我发布回调代码吗? -
我将发布我的代码以检索所有行
-
Firebase API 并非旨在同步工作。您应该使用异步编程来处理它。还要记住,阻塞应用程序的主线程是一个非常糟糕的主意。
标签: android firebase firebase-realtime-database kotlin synchronous