Эта ошибка появляется автоматически при использовании метода setLocation()
без использования GeoFire.CompletionListener()
. Если вы реализуете CompletionListener
, это должно решить проблему.
Поэтому замените
geoFire.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()));
с
geoFire.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()), new GeoFire.CompletionListener(){ });
Редактировать 2:
Возможно, вам придется адаптироваться к другому подходу, если вы все еще сталкиваетесь с трудностями.
Заменить следующий код:
geoFireAvailable.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()), new GeoFire.CompletionListener() {
@Override
public void onComplete(String key, DatabaseError error) {
}
});
Со следующим кодом:
GeoHash geoHash = new GeoHash(new GeoLocation(location.getLatitude(),location.getLongitude()));
Map<String, Object> updates = new HashMap<>();
updates.put("g", geoHash.getGeoHashString());
updates.put("l", Arrays.asList(location.getLatitude(),location.getLongitude()));
geoFireAvailable.setValue(updates,geoHash.getGeoHashString());