我正在尝试使用where查询从firestore中获取数据,但是在调用get()和OnComplete()方法时,程序的控件不会放在oncomplete方法中。
当我返回HashMap时,它始终返回null,甚至尝试通过日志检查控件是否位于OnComplete方法内,但是没有。
编辑:onFailure()方法也不起作用。
HashMap<String,String> doesMeetingPointExists(LatLng latLng)
{
String lat = String.valueOf(latLng.getLatitude());
String longi = String.valueOf(latLng.getLongitude());
final HashMap<String,String> jsonObject = new HashMap<>();
Query q = firebaseFirestore.collection("meeting_points").whereEqualTo("latitude",lat).whereEqualTo("longitude",longi);
q.get().addOnCompleteListener(new OnCompleteListener<Querysnapshot>() {
@Override
public void onComplete(@NonNull Task<Querysnapshot> task) {
if (task.getResult().isEmpty()){
jsonObject.put("isnull","true");
Log.d("TAG","DATA"+jsonObject.toString());
}
else{
Log.d("TAG","IN ON Fail");
Querysnapshot querysnapshot = task.getResult();
for (QueryDocumentsnapshot documentsnapshot: querysnapshot){
Map<String,Object> map = documentsnapshot.getData();
jsonObject.put("isnull","false");
jsonObject.put("LocationName",String.valueOf(map.get("place_name")));
jsonObject.put("LocationAddress",String.valueOf(map.get("place_address")));
Log.d("TAG","DATA"+jsonObject.toString());
}
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("TAG","IN ON Fail");
jsonObject.put("isnull","true");
Timber.e("Errora"+"---"+e.getMessage());
}
});
Log.d("TAG",jsonObject.toString());
return jsonObject;
}