Cómo guardar información de ubicación en Firebase

Estoy intentando ahorrar la localización (así latitide y longitude) como una de las llaves / campos en Firebase. En su ejemplo SFVehicles , que muestran cómo consultar una vez que la información se almacena, pero mi problema es ¿cómo puedo ahorrar en el primer lugar.

En su blog, GeoFire se vuelve móvil , están mostrando cómo se verían los datos, pero ¿cómo puedo obtener ese campo de location poblado?

Introduzca aquí la descripción de la imagen

Puedo ahorrar otros tipos de cadenas a la Firebase sin embargo. Sólo uso el código de abajo. Pregunta es ¿Qué tipo de datos debe ser el campo de location ?

  Firebase ref = new Firebase("https://myfirebaselink.firebaseio.com/"); //User alan = new User("Alan Turing", 1912); alanRef.setValue(obj); 

Intenté location para ser una List<String> , pero eso no funcionó – el campo de la localización miró como abajo:

Introduzca aquí la descripción de la imagen

Editar: En más investigaciones, encontró esta entrada en el blog de Google, pero también se guardan como las teclas latitude1 and longitude . This probably was written before . This probably was written before GeoFire `fue introducido.

El proyecto GeoFire para Java tiene un gran README , que cubre (entre otros) los datos de configuración de ubicación :

En GeoFire puede establecer y consultar ubicaciones mediante claves de cadena. Para establecer una ubicación para una clave simplemente llame al método setLocation() . El método se pasa una clave como una cadena y la ubicación como un objeto GeoLocation que contiene la latitud y la longitud de la ubicación:

 geoFire.setLocation("firebase-hq", new GeoLocation(37.7853889, -122.4056973)); 

Para comprobar si una escritura se ha guardado correctamente en el servidor, puede agregar un GeoFire.CompletionListener a la llamada setLocation() :

 geoFire.setLocation("firebase-hq", new GeoLocation(37.7853889, -122.4056973), new GeoFire.CompletionListener() { @Override public void onComplete(String key, FirebaseError error) { if (error != null) { System.err.println("There was an error saving the location to GeoFire: " + error); } else { System.out.println("Location saved on server successfully!"); } } }); 

Para eliminar una ubicación y eliminarla de la base de datos simplemente pase la clave de la ubicación a removeLocation:

 geoFire.removeLocation("firebase-hq"); 

Mira desde aquí que el tipo de objeto es GeoLocation, como en la línea 83.

  • Obteniendo clase por su nombre
  • Android: qué operador para modulo (% no funciona con números negativos)
  • Cómo hacer un signo de infinito en Android?
  • No se pudo expandir RemoteViews - Notificación incorrecta
  • No se pudieron resolver todas las dependencias para la configuración ': app: _debugApkCopy'
  • Uso de la clase GLSurfaceView con diseños xml para Android
  • ¿Cómo analizar XML y almacenarlo en un mapa con SimpleXML?
  • ¿Cómo mejorar el tiempo de inicio de una aplicación para Android?
  • Generic OR en lugar de AND <T extends Number | CharSequence>
  • Google App Engine Java y Android Introducción
  • Android: ruta de la carpeta de activos para File ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.