java - 将 Firestore 中的字符串保存在 Java 的 ArrayList 中
问题描述
我目前正在尝试创建一个提出问题并显示答案的应用程序。我将它们保存为 Firestore 上的文档(集合中的每个文档都有一个字符串表示问题,另一个字符串表示答案)。我正在尝试读取该集合中的每个文档(使用 for 循环?),然后将答案保存在一个 arrayList 中,将问题保存在另一个中。我只收到一条错误消息,说“尝试在空对象引用上调用虚拟方法 'java.lang.Object java.util.ArrayList.get(int)'”。
点击继续按钮后:
QuestionView.setText(randomSpieler + ", " + Question);
将问题保存在数组列表中的函数中的代码:
public void get_questions(){
colref_QUESTIONS.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for(QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){
String question = documentSnapshot.getString("question");
String answer = documentSnapshot.getString("answer");
questions.add(question);
answers.add(answer);
nrofquestions++;
}
}
});
}
解决方案
循环文档时您缺少 .getResult() 。
试试下面的代码:
public void get_questions(){
ArrayList<String> answers = new ArrayList<String>();
ArrayList<String> questions = new ArrayList<String>();
colref_QUESTIONS.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for(QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots.getResult()){
String question = documentSnapshot.getString("question");
String answer = documentSnapshot.getString("answer");
questions.add(question);
answers.add(answer);
nrofquestions++;
}
}
});
}
推荐阅读
- python - LookupError:未注册编解码器搜索功能:找不到编码
- javascript - 我可以在不同的元素上添加相同的 document.createElement 元素吗?
- swift - 内存泄漏警报控制器 / UIImagePickerController
- c# - 使用 c# sslclient 的 Https 帖子
- javascript - 如何在 Twitter 上分享图像和详细信息
- sql - SQL Server 中的动态公式列
- android - adb 屏幕截图和从视图位图中获取的图像之间的区别
- php - 从 json_encode PHP POST 请求获取 JSON 返回状态
- javascript - 在单个页面中运行多个 Vuex 应用程序
- java - 使用 @ManyToMany 关联加入三个表