gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:09 24 4
gpt4 key购买 nike

我想要什么?

我想从 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

最后的注释:-

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

最佳答案

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

关于Android - 如何从 Firebase 按插入顺序检索对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38615242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com