2016-11-11 2 views
0

Ich arbeite mit Firebase an einem Projekt, und ich habe Probleme damit, mich mit der Frage zu befassen, wie die Abfrage funktioniert. Ich versuche, andere Benutzer, die sich in einem bestimmten Umkreis des aktuellen Benutzerstandorts befinden, abzufragen und zu finden.Geofire-js: Gibt alle Schlüssel zurück, deren momentane Position mit geoQuery übereinstimmt.

Ich kann die geoQuery erstellen, aber ich bin mir nicht sicher, wie die Benutzer, deren Standorte innerhalb des Radius sind, zurückgeben.

Aus den Beispielen scheint es, dass key_entered nur ausgelöst wird, wenn sich eine Position im DB ändert. Alle meine Standorte sind alle einmal statisch, also möchte ich nur eine Abfrage machen und dann alle Benutzer zurückgeben, deren momentane Position in den Suchradius fällt.

Ist dies mit Geofire möglich?

Meine Standortinformationen in Firebase wie folgt gespeichert:

users { 
    uid: { 
     location: { 
      g: 'GeoHash', 
      l: [lat, long] 
     } 
     } 
    } 

Hier ist meine Frage:

let geoQuery = geoFire.query({ 
       center: [currentUser.location.l[0], currentUser.location.l[1]], 
       radius: 1000 
      }); 
+0

Das 'key_entered' wird tatsächlich ausgelöst, auch wenn eine Position nur ein statischer Wert ist und nicht geändert wurde. Ähnlich wie das 'value'-Ereignis von Firebase einmal mit dem Anfangswert ausgelöst wird, wird' key_entered' für jeden Wert ausgelöst, der zu Ihrer 'GeoQuery' passt, auch wenn die' GeoQuery' erstellt wurde, nachdem der Wert zuletzt geändert wurde. – jwngr

Antwort

0

Das Problem war, dass ich nicht die Orte werden zu speichern hatte geoFire die Verwendung set Methode, so Das GeoHash wurde nie erstellt und gibt GeoFire nichts abzufragen. Danke für die Hilfe @jacob!

+0

Ist es in Javascript möglich? Suchen von Schlüsseln (Liste von Schlüsseln) in der Nähe von statischen (festen) Standorten - die im Firebase-Datenspeicher bereits hinzugefügt wurden. Hinweis: 'key_entered' wird nicht verwendet, da 'key_entered' nur ausgelöst wird, wenn sie neu oder aktualisiert ist. Was ist mit zuvor hinzugefügten Standorten, aber unter einem gegebenen Radius? Wie ist es möglich ?? –

+0

@AnkitMaheshwari Haben Sie die Lösung gefunden? –

+0

@YoloYolo Noch nicht! –

Verwandte Themen