java - 如何使用 Firestore 对象填充数组
问题描述
我正在尝试使用 Firebase 和 Firestore 制作电子书应用程序。这是数据库的样子:
books
Book1
-title:abc
-category:123
-description:123
Book2
-title:xyz
-category:456
-description:123
所以基本上我需要从 Firebase-firestore 检索数据并将它们放入一个数组中(我称他为 lstBook),所以这是我尝试过但没有奏效的代码(MainActivity 上没有显示任何内容)
List<book> lstBook;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private CollectionReference notebookRef = db.collection("books");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lstBook = new ArrayList<>();
}
@Override
protected void onStart() {
super.onStart();
notebookRef.addSnapshotListener(MainActivity.this, new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot queryDocumentSnapshots, FirebaseFirestoreException e) {
if (e != null){
return;
}
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){
BookActivity note = documentSnapshot.toObject(BookActivity.class);
String title = note.getTvtitle();
String description = note.getTvdescription().toString();
}
lstBook.add(new book(title,"test","",R.drawable.themartian));
}
});
}
我正在使用 cardView 和 RecyclerView 但我可以通过添加此代码基本上添加书籍(手动)
lstBook.add(new book("Book Title","Category","Description",Image here));
解决方案
尝试这个:-
@Override
protected void onStart() {
super.onStart();
notebookRef.addSnapshotListener(MainActivity.this, new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot queryDocumentSnapshots, FirebaseFirestoreException e) {
if (e != null){
return;
}
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){
String title = documentSnapshot.get("tvtitle").toString();
String description = documentSnapshot.get("tvcategory").toString();
lstBook.add(new book(title,"test",description,R.drawable.themartian));
}
}
});
}
推荐阅读
- c# - 按钮内的按钮 MVVM。如何点击内部按钮?
- python - Flask-RESTful 我们可以在获取和发布资源之前调用一个方法吗?
- php - 以毫秒为单位将时间设置为中欧时间 (CET)
- sql-server - SQL Server 2012 以主键自动增量跳转
- php - 导入 phpMyAdmin 导出后插入不起作用
- javascript - 使用 material-ui 的 TextField 和 getInputProps 在输入旁边创建标签
- java - 可以通过javassist将参数添加到现有类的现有方法中吗
- sql - 两个表在其他表中获取具有共同值或没有值的值
- python - 使用 brew 降级到 python 3.6.5:错误 /bin/sh: sphinx-build: command not found make: *** [build] Error 127
- python - 如何从查询的数据中形成一个列表?