【发布时间】:2017-06-29 17:16:16
【问题描述】:
我正在从 SQLite 过渡到 Firebase,在此过程中,我有很多预先存在的数据需要设置到不同的视图中。
初始视图:按字母顺序排列的列表(无重复项),仅显示其下方存在的资源的字母(意味着如果没有以 X 开头的资源,则 X 根本不应该显示)。
次要视图:点击一个字母后,它会展开手风琴样式以显示以该字母开头的资源(无重复)。
我的 Firebase 查询是正确的,因为我得到了正确的数据,但我该如何使用它?理想情况下,我想做的是获取所有主题,将它们放入 TreeSet 以消除重复项并自动对它们进行排序,然后做同样的事情,但只获取第一个字母。我无法修改内部类中的集合、数组或列表,但是如果我从内部实例化也无法访问相同的内容(这没关系,因为它对每个对象都被调用为新鲜的,所以它是总是一套新的)。
有没有我遗漏的最佳实践?
mDatabase = FirebaseDatabase.getInstance();
mRootRef = mDatabase.getReference();
mQuoteRef = mRootRef.child("quotes");
Query topicQuery = mQuoteRef.orderByChild("Topic");
topicQuery.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
TreeSet<String> topicList = new TreeSet<>(); <--obv not right
TreeSet<String> firstLetterList = new TreeSet<>();
GetQuoteInfo quote = dataSnapshot.getValue(GetQuoteInfo.class);
if (quote.getTopic() != null) {
topicList.add(quote.getTopic());
firstLetterList.add(quote.getTopic().substring(0, 1));
}
}
}
magicalListThatContainsAllOfMyFirebaseDataThatICanNowManipulate;
【问题讨论】:
标签: firebase firebase-realtime-database treeset