Как сохранить местоположение объекта в базе без Geofire? - PullRequest
0 голосов
/ 19 мая 2018

Я понятия не имею, как сохранить местоположение в Firebase без использования Geofire.Одним из возможных методов может быть сохранение только координат в Firebase, но, глядя на объект местоположения (в Android), он имеет так много свойств вместе с координатами.Как сохранить законченный объект и получить его позже?

1 Ответ

0 голосов
/ 19 мая 2018

Вы можете достичь этого, выполнив следующие действия.Сначала создайте класс модели, который выглядит следующим образом:

public class LocationModel {
    private double lat, lng;

    LocationModel() {}

    public LocationModel(double lat, double lng) {
        this.lat = lat;
        this.lng = lng;
    }

    public double getLat() { return lat; }
    public double getLng() { return lng; }
}

Создайте объект класса и добавьте его в базу данных следующим образом:

LocationModel locationModel = new LocationModel(48.858383, 2.294480);
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference locationOneRef = rootRef.child("locations").child("locationOne");
locationOneRef.setValue(locationModel);

Ваша база данных должна выглядеть следующим образом:

Firebase-root
   |
   --- locations
          |
          --- locationOne
                  |
                  --- lat: 48.858383
                  |
                  --- lng: 2.294480

И чтобы вернуть данные, используйте следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference locationOneRef = rootRef.child("locations").child("locationOne");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        double lat = dataSnapshot.child("lat").getValue(Double.class);
        double lng = dataSnapshot.child("lng").getValue(Double.class);
        Log.d("TAG", lat + / " + lng);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
locationOneRef.addListenerForSingleValueEvent(valueEventListener);

Вывод будет:

48.858383 / 2.294480
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...