我使用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) {
}
}
答案 0 :(得分:2)
当您对Cloud Firestore数据库执行GeoQuery
并使用addGeoQueryDataEventListener()
时,必须实现一些方法。在您的示例中,这些方法之一称为onDocumentEntered()
。如您所见,它有两个参数,第一个参数的类型为DocumentSnapshot
。此对象包含您范围内的所有locations对象。为了能够显示这些位置,您需要遍历DocumentSnapshot
对象并获取所有位置。
要显示RecyclerView
中的所有位置,首先需要创建位置列表。因此,当您进行迭代时,请将所有位置对象添加到列表中。然后,只需创建一个适配器并将该列表传递给它的构造函数即可。将适配器设置为RecyclerView
,您就完成了。
如果您认为可以像在查询Cloud Firestore数据库时一样将GeoQuery
传递给FirestoreRecyclerOptions
对象,请注意,这是不可能的,因为GeoQuery类确实不扩展com.google.firebase.firestore.Query
。