按serverTimestamp订购collectionGroup

时间:2019-09-21 09:08:30

标签: android firebase google-cloud-firestore

我已经使用Firestore建立了一个数据库。

数据库如下:

有一个名为NBDB的主集合,内部有每个用户带有uid的文档(例如OJQRFOyYd....)。在每个文档中都有一个名为MyBooks的集合,该集合中还有具有uid的文档,其中包含BookIDDateCreatedPopularity

enter image description here

通过使用以下代码,我设法获得所有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"));
            }
        }
    });

但是,由于我的搜索不在每本书的文档中,因此无法正常工作。

有办法吗?

谢谢

0 个答案:

没有答案