2016-04-10 15 views
7

Sto cercando di salvare la posizione (quindi latitide e longitudine) come una delle chiavi/campi in Firebase. Nel loro esempio SFVehicles, mostrano come interrogare una volta che le informazioni sono state archiviate, ma il mio problema è come faccio a salvare in primo luogo.come salvare le informazioni sulla posizione in Firebase

Nel loro post del blog, GeoFire goes Mobile, stanno mostrando come sarebbero i dati - ma come posso ottenere quel campo location popolato?

enter image description here

sono in grado di salvare altri tipi di stringhe alla Firebase però. Ho appena usato il codice qui sotto. La domanda è Quale tipo di dati deve essere il campo location?

 Firebase ref = new Firebase("https://myfirebaselink.firebaseio.com/"); 

     //User 
     alan = new User("Alan Turing", 1912); 


     alanRef.setValue(obj); 

ho cercato location essere un List<String>, ma che non ha funzionato - il campo posizione sembrava di seguito:

enter image description here

Edit: In più di ricerca, ha trovato this blog post by Google ma sono è stato introdotto anche il salvataggio come chiavi latitude1 and longitudine . This probably was written before GeoFire`.

+0

hai inserito una foto del albero JSON nella sua interrogazione. Sostituiscilo con il JSON attuale come testo, che puoi facilmente ottenere facendo clic sul pulsante Esporta nel database di Firebase. Avere il JSON come testo lo rende ricercabile, ci permette di usarlo facilmente per testare con i tuoi dati reali e usarlo nella nostra risposta e, in generale, è solo una buona cosa da fare. –

+0

Il post del blog googlegeodeveloper non utilizza GeoFire. Quindi è irrilevante per te se stai cercando di usare GeoFire. –

risposta

8

Il GeoFire for Java project has a great README, che copre (tra le altre) setting location data:

In GeoFire è possibile impostare e interrogare le posizioni con chiavi stringa. Per impostare una posizione per un tasto, è sufficiente chiamare il metodo setLocation(). Il metodo viene passato un tasto come stringa e la posizione come un oggetto GeoLocation contenente latitudine e longitudine della posizione:

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

Per verificare se la scrittura è stata salvata sul server, è possibile aggiungere un GeoFire.CompletionListener alla setLocation() chiamata:

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!"); 
     } 
    } 
}); 

per rimuovere una posizione ed eliminare dal database di simpl y passano chiave della posizione per removeLocation:

geoFire.removeLocation("firebase-hq"); 
+0

Grazie, il readme è abbastanza buono e spiega chiaramente tutte le operazioni. Sciocco, l'ho perso, grazie. – user1406716

2

appare dal here che il tipo di oggetto è geolocalizzazione, come in linea 83.

Problemi correlati