Android - 如何从 Firebase 检索按插入顺序排列的对象列表?

2023-11-30

我想要什么?

我想从 Firebase 数据库中检索按插入顺序排列的对象列表。

如何将对象添加到 Firebase 数据库中的列表?

mRefUser.push().setValue(new MessageItem());

mRefUser.push().setValue(new MessageItem());

.

.

mRefUser.push().setValue(new MessageItem());

它是如何添加的?

Firebase 将每个对象存储为 HashMap 中的键值对。

enter image description here

我如何检索这些值?

mFireBaseRefnew.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            final Map<String, MessageItem> messageMap = new LinkedHashMap<String, MessageItem>();
            if (dataSnapshot != null && dataSnapshot.getValue() != null) {

                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    HashMap<String,MessageItem> messageMap = (HashMap<String, MessageItem>) postSnapshot.getValue();
                    Collection<MessageItem> messageItems = messageMap.values() ;
                    List<MessageItem> messageItemList = new ArrayList<MessageItem>();
                    messageItemList.addAll(messageItems);                     
            }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

我得到什么?

enter image description here

最后注意事项:-

哈希图键是随机顺序的。有什么方法可以获取链接哈希图而不是哈希图。我不想存储密钥,因为数据库正在维护顺序,应该有某种方法可以使它们按相同的顺序排列,但我不知道如何获取它们。


你读过文档吗?数据键是基于时间戳的,因此它们按时间排序。要获得排序查询,您必须使用orderByKey()关于数据库参考。更多相关信息https://firebase.google.com/docs/database/android/retrieve-data#sorting_and_filtering_data

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 如何从 Firebase 检索按插入顺序排列的对象列表? 的相关文章

随机推荐