Firebase herhangi bir uzamsal indekslemeyi desteklemediğinden, bu konuda tavsiye veren geohash kullanıyorum. Geohash, yakındakileri bulmak için karakterler kullanıyor.Dize önekiyle eşleşen anahtarlar için Firebase nasıl sorgulanır
Yani Firebase içinde w22qt4vhye1c
w99qt4vdf4vc
w22qt4vhzerct
geohash mağaza var ve ben w22qt4
yakın geohash hangi sadece sorgulamak istiyorum diyelim.
Bu nasıl yapılır?
Firebase'in başladığını biliyorum. Denedim ama işe yaramadı.
GÜNCELLEME
saklanması geohash yüzden json burada Sorum
root
- geohash
- w22qt4vhye1c3
- id
- z99qt4vdf4vc
- w22qt4vhzerct
yılında
//Encode lat lng, result w22qt4vhye1c3
var geoHashLatLng = encodeGeoHash(lat,lng);
firebaseRef.child('/geohash/' + geoHashLatLng).set(id);
Firebase için. Sadece w22qt4
karakterlerinden başlayan geohash sorgulamak istiyorum. Bunu firebase'de yapabilir miyiz?
GÜNCELLEME 2 startAt()
karakter
Örnek ... ile başlayan ile sorgulamaz gibi görünüyor: Aşağıdaki kod ile gehash
geohash düğümü
geohash
- a123
- a333
- b123
- c123
- d123
aşağıdakilere sahip
var firebaseRef = new Firebase('https://test.firebaseio.com');
var query = firebaseRef.child('/geohash').startAt(null, 'a');
query.on('child_added', function(snapshot) {
console.log(snapshot.name());
});
bu 26 alfabe harfleri sırayla ancak uymayan sorgular
startAt(null, 'a') //return a123, a333, b123, c123, d123
startAt(null, 'c123') //return c123, d123
startAt(null, 'd') //return d123
My beklenen sonuçları
startAt(null, 'a') //return a123, a333
startAt(null, 'c123') //return c123
startAt(null, 'd') //return d123
Benim tahminim, startAt() sonuçları alacak. Peki, beklenen sonuçlara ulaşabilmem için firebase'de neler yapabilirim?
Daha anlamlı bir geri bildirim sağlayabilmek için, çalıştığınız şeyin bir kod snippet'i sunabilir misiniz? –
@AndrewLee Merhaba, Sadece sorumu güncelledim, lütfen bir göz atın. – vzhen
Belirli bir anahtara son vermek için "endAt" öğesini kullanabilirsiniz. Aşağıdaki yazıya yapılan düzenlemelere bakın. –