Как сохранить данные вместе с местоположением GeoFire в firebase?

Я разрабатываю приложение для Android, в котором я хотел бы сохранить данные с местоположением GeoFire, а затем получить их в соответствии с местоположением.

Проблема в том, что я не знаю, как сохранить данные вместе с GeoFire местоположением, хотя я могу сохранить их с помощью метода .push().setValue().

На самом деле у меня нет кода, так как я не знаю, как делать то, что хочу.

Пожалуйста, дай мне знать.

Извините, если вопрос кажется плохо отформатированным. Я еще новичок здесь.


person Hammad Nasir    schedule 13.05.2016    source источник
comment
Здесь я объяснил, что сработало для меня: stackoverflow.com/a/62366763/2792809   -  person Gomez NL    schedule 14.06.2020


Ответы (1)


String key_of_data= ref.child("feeds").push(data).getKey();

Теперь переменная key_of_data содержит ключ данных фида. Таким образом, чтобы сохранить эти данные, единственный вариант — создать ссылку на этот ключ с помощью GeoFire. Таким образом, key_of_data дается как ключ для geoFire.

geoFire = new GeoFire(ref.child("user_location"));
geoFire.setLocation(key_of_data, new GeoLocation(lattitude, longitude));

Вот как вы сохраняете данные. Для получения данных используйте следующий код.

geoFire=newGeoFire(FirebaseDatabase.getInstance().getReference().child("users_location");
geoQuery = geoFire.queryAtLocation(geoLocation), 1);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
    //key is the key to the feed data.
}
};    

Дополнительные сведения см. в этом сообщении стека ЗДЕСЬ

person Febin Mathew    schedule 22.10.2017