我已经使用Firestore
建立了一个数据库。
数据库如下:
有一个名为NBDB
的主集合,内部有每个用户带有uid
的文档(例如OJQRFOyYd....
)。在每个文档中都有一个名为MyBooks
的集合,该集合中还有具有uid的文档,其中包含BookID
,DateCreated
和Popularity
。
通过使用以下代码,我设法获得所有BookID
的感谢collectionGroup查询:
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collectionGroup( "MyBooks" ).get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot document : queryDocumentSnapshots) {
Log.d(TAG,document.getId() + " => " + document.getData().get( "BookID"));
}
}
});
但是,我希望通过DateCreated字段对数据进行排序。 我认为首先要订购数据库,然后再使用上面的功能,例如:
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collectionGroup( "MyBooks" ).orderBy("DateCreated").get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot document : queryDocumentSnapshots) {
Log.d(TAG,document.getId() + " => " + document.getData().get( "BookID"));
}
}
});
但是,由于我的搜索不在每本书的文档中,因此无法正常工作。
有办法吗?
谢谢