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?
- Calendario de Android - Comienza semana con lunes
- Restaurar el estado del widget de vista de búsqueda de android
- Creación de JSONObject de cadena en JAVA (org.json)
- Almacén de datos local ParseQuery orderByDescending con createdAt no funciona
- Clase "Handler" similar en Java
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:
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.
- Cómo serializar objeto a JSON?
- Android MediaPlayer.OnBufferingUpdateListener - El porcentaje de contenido almacenado en búfer es negativo
- Retrasos en aplicaciones de Android GraphView en tiempo real
- Ksoap2 no puede serializar la excepción en Android 2.2 (utilizando objetos definidos por el usuario)
- Android Eclipse - No se pudo encontrar * .apk
- Cómo crear un botón de imagen en Android?
- ¿Cómo incluir un proyecto Java en un proyecto de Android?
- Las transacciones siguen acumulándose en el búfer (SDK de Google Analytics para Android)
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 objetoGeoLocation
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 llamadasetLocation()
:
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.
- Cómo obtener requestCode de la intención pendiente en el momento de la alarma en android
- Cómo averiguar qué SIM está realizando la llamada saliente (Dual SIM)