将Geofirestore文档结果加载到RecyclerView中

时间:2019-05-30 09:04:30

标签: android firebase android-recyclerview google-cloud-firestore geofirestore

我使用foo查找最近的位置,它可以工作,但是我需要将进入GeoFirestore的文档加载到其中,怎么可能实现呢?

GeoFirestore方法

RecyclerView

加载到Rv

   private void getNearestEstate(){

    GeoQuery geoQuery = geoFirestore.queryAtLocation(new GeoPoint(latitude, longitude), 2);
    geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
        @Override
        public void onDocumentEntered(DocumentSnapshot documentSnapshot, GeoPoint geoPoint) {

        }
}

1 个答案:

答案 0 :(得分:2)

当您对Cloud Firestore数据库执行GeoQuery并使用addGeoQueryDataEventListener()时,必须实现一些方法。在您的示例中,这些方法之一称为onDocumentEntered()。如您所见,它有两个参数,第一个参数的类型为DocumentSnapshot。此对象包含您范围内的所有locations对象。为了能够显示这些位置,您需要遍历DocumentSnapshot对象并获取所有位置。

要显示RecyclerView中的所有位置,首先需要创建位置列表。因此,当您进行迭代时,请将所有位置对象添加到列表中。然后,只需创建一个适配器并将该列表传递给它的构造函数即可。将适配器设置为RecyclerView,您就完成了。

如果您认为可以像在查询Cloud Firestore数据库时一样将GeoQuery传递给FirestoreRecyclerOptions对象,请注意,这是不可能的,因为GeoQuery类确实扩展com.google.firebase.firestore.Query