如何通过查询过滤附近的集合引用或如何在geofirestore中使用分页?

时间:2019-06-24 08:52:17

标签: android firebase google-cloud-firestore geofirestore

我想从我的当前位置获取附近商店的列表,并加上一些过滤条件和列表限制,例如 附近的商店,其可用性,真实性和清单0至15中的数据限制

我正在使用Firestore数据库获取距我的位置3公里以内的附近数据,但无法添加任何过滤器或分页

CollectionReference databaseReference = FirebaseFirestore.getInstance().collection("/shops");
geoFirestore = new GeoFirestore(databaseReference);
final List<Model> list = new ArrayList<>();
GeoQuery geoQuery = geoFirestore.queryAtLocation(new GeoPoint(89.86587, 56.1861717), 3);

geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
            @Override
            public void onDocumentEntered(DocumentSnapshot documentSnapshot, GeoPoint location) {
                Model model = documentSnapshot.toObject(Model.class);
                System.out.println(model.getName());
                list.add(model);


                // ...
            }

            @Override
            public void onDocumentExited(DocumentSnapshot documentSnapshot) {
                // ...
            }

            @Override
            public void onDocumentMoved(DocumentSnapshot documentSnapshot, GeoPoint location) {
                // ...
            }

            @Override
            public void onDocumentChanged(DocumentSnapshot documentSnapshot, GeoPoint location) {
                // ...
            }

            @Override
            public void onGeoQueryReady() {
                System.out.println("All initial data has been loaded and events have been fired!");
                if (list.size()>0){
                    System.out.println("Size: "+list.size());
                }else {
                    System.out.println("Not found");
                }
                // ...
            }

            @Override
            public void onGeoQueryError(Exception exception) {
                System.err.println("There was an error with this query: " + exception.getLocalizedMessage());
                // ...
            }
        });

0 个答案:

没有答案