java - 如何在 Android FirebaseDatabase 中将数据从 dataSnapshot 转换为集合列表

标签 java android firebase firebase-realtime-database

我使用addValueEventListener从firebase数据库获取数据列表,我在dataSnapshot中获取了数据,我可以调用getValue来获取数据,但是有什么方法可以直接将其转换为Arraylist 现在我就是这样做的

public void onDataChange(DataSnapshot dataSnapshot) {
    for (DataSnapshot matchSnapShot: dataSnapshot.getChildren()) {
        Match match = matchSnapShot.getValue(Match.class);
        matchList.add(match);
    }
    Object obj= dataSnapshot.getValue();
    Toast.makeText(NewMatchActivity.this,"got data",Toast.LENGTH_LONG).show();
}

但我想要这样的东西

ArrayList<Match> matchList = dataSnapshot.getValue(ArrayList<Match.class>);

最佳答案

这在一定程度上取决于您的确切数据结构(作为文本的 JSON 的可表示 fragment 会对此有所帮助),但您返回的数据很可能是 Map 而不是 List。

public void onDataChange(DataSnapshot dataSnapshot) {
    Map<String,Match> map = (Map<String, Match>) dataSnapshot.getValue();
    Collection<Match> matches = map.values();
}

关于java - 如何在 Android FirebaseDatabase 中将数据从 dataSnapshot 转换为集合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39048483/

相关文章:

android - 在 oncreate 方法中获取 NFC 唯一 ID

android - 如何使用 android volley 库将位图图像上传到服务器?

java - dataSnapshot.getChildren() 获取用户 ID 但不获取值

Firebase:使用 AngularFire2 更新列表绑定(bind)中的项目

java - neo4j根据程度对java中的节点进行排序

Java 8 Date.from 的 Java 7 org. Threeten 端口解决方案

java - JLS 是否允许此指令重新排序?

javascript - 无法从 WebView Android 获取整个 HTML 代码

java - Android -- Google+ 即时上传如何工作?

firebase - 在 Firebase 中创建空子记录