gpt4 book ai didi

android - Firebase 数据检索

转载 作者:搜寻专家 更新时间:2023-11-01 07:55:53 25 4
gpt4 key购买 nike

我正在使用 Android 版 Firebase 制作一个涉及群组的应用我的 firebase 中有一个使用 push 方法推送的项目列表,如下所示:

-Groups Joined:
~Unique Key: Group 1 Name
~Unique Key: Group 2 Name

我正在尝试在我的 android 代码中将此列表检索为 Java 列表。我需要能够通过索引而不是使用唯一键访问已加入的组节点中的信息,我正在使用此代码。

Query groupsJoined = myUserRef.child("Groups Joined").orderByKey();

groupsJoined.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
// do some stuff once
groupNames = (ArrayList<String>) snapshot.getValue();


}

@Override
public void onCancelled(FirebaseError firebaseError) {
}
});

代码崩溃是因为 snapshot.getValue() 正在返回一个映射类型的对象。我无法访问 map 的元素,因为我没有将这些唯一 key 存储在 Android 设备上,我也不想这样做。如何获取要返回的数据快照,作为我可以循环访问的内容并从中获取组名称,而无需使用唯一键?

最佳答案

转换 Map 非常简单到 List .

试试这段代码:

myUserRef.child("Groups Joined").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
// do some stuff once
Map groupNames = snapshot.getValue();
List groupNamesList = new ArrayList(groupNames.values());
}

@Override
public void onCancelled(FirebaseError firebaseError) {
}
});

如果 snapshot.getValue() 的默认行为不适用,您还可以 pass in a Java class ,客户端将尝试使用 Jackson 将其反序列化为该类.

关于android - Firebase 数据检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27761336/

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