android - 如何在 Firebase 上获取数组数据?

标签 android firebase firebase-realtime-database

我有这个 Firebase:

The code

我正在尝试使用此代码获取所有问题数据:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference questionsRef = database.getReference("questions");

questionsRef.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {

        HashMap question = dataSnapshot.getValue(HashMap.class);

        System.out.println(question.get("0"));
    }
}

但是我得到了错误:

com.google.firebase.database.DatabaseException: Class java.util.HashMap has generic type parameters, please use GenericTypeIndicator instead

我尝试了几种方法,但这是最后一个错误。如何获取每个问题的数据和问题的所有选项?

最佳答案

选项对我来说就像一个编号列表,所以不必使用 map 来获取它的内容。

GenericTypeIndicator<List<String>> gti = new GenericTypeIndicator<List<String>>() {};

String question = dataSnapshot.child("question").getValue(String.class);
List<String> questionOptions = dataSnapshot.child("options").getValue(gti);

关于android - 如何在 Firebase 上获取数组数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42384675/

相关文章:

javascript - Angular2 : *ngFor, AsyncPipe 和索引

ios - Firebase 使用 Swift 自动更新值

java - 如何从 firebaserecycleradapter 上的 firebase 数据库中获取数据单击

java - Eclipse Gradle 集成错误 - 安装软件已鼓励

c# - 如何将 post 请求从 Android 发送到 C# web API

android - 如何在操作栏上添加自定义按钮?

java - Firebase/Android : Adding retrieved values from Firebase to arraylist returns null pointer exception

android - 如果复选框在 ListView 中,如何实现 OnCheckedChangeListener

android - Firebase 动态链接打开特定 Activity

firebase - 使用数据库管理加密 key