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