से मेल खाने वाली कुंजियों के लिए फायरबेस को कैसे क्वेरी करें, क्योंकि फ़ायरबेस किसी भी स्थानिक इंडेक्सिंग का समर्थन नहीं करता है, इसलिए मैं भूहाश का उपयोग करता हूं जो कोई यहां सलाह देता है। जिओहाश पास के खोजने के लिए अक्षर का उपयोग कर रहा है।एक स्ट्रिंग उपसर्ग
तो कहते हैं कि मैं firebase में w22qt4vhye1c
w99qt4vdf4vc
w22qt4vhzerct
geohash दुकान है और मैं केवल क्वेरी करने के लिए जो w22qt4
के करीब geohash चाहते हैं।
यह कैसे करें?
मुझे पता है कि फायरबेस शुरू हो गया है। मैंने कोशिश की लेकिन काम नहीं किया।
अद्यतन
भंडारण geohash firebase को
//Encode lat lng, result w22qt4vhye1c3
var geoHashLatLng = encodeGeoHash(lat,lng);
firebaseRef.child('/geohash/' + geoHashLatLng).set(id);
json
root
- geohash
- w22qt4vhye1c3
- id
- z99qt4vdf4vc
- w22qt4vhzerct
यहाँ मेरा प्रश्न में तो। मैं बस geohash से पूछना चाहता हूं जो अक्षर w22qt4
से शुरू होता है। क्या हम इसे फायरबेस में कर सकते हैं?
अद्यतन 2 startAt()
लगता है क्वेरी नहीं के साथ पात्रों के साथ ...
उदाहरण शुरू: मैं gehash
geohash नोड
geohash
- a123
- a333
- b123
- c123
- d123
निम्नलिखित कोड के साथ निम्नलिखित है
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());
});
इस परिणाम
startAt(null, 'a') //return a123, a333, b123, c123, d123
startAt(null, 'c123') //return c123, d123
startAt(null, 'd') //return d123
मेरे अपेक्षित परिणाम
startAt(null, 'a') //return a123, a333
startAt(null, 'c123') //return c123
startAt(null, 'd') //return d123
मेरा अनुमान है, startAt() अनुक्रम में लेकिन मिलान नहीं 26 वर्णमाला पत्र क्वेरी करेगा हो जाएगा। तो, मैं फायरबेस में क्या कर सकता हूं ताकि मैं ऊपर दिए गए मेरे अपेक्षित परिणाम प्राप्त कर सकूं?
क्या आप जो भी कोशिश कर रहे हैं उसका एक कोड स्निपेट प्रदान कर सकते हैं ताकि मैं अधिक सार्थक प्रतिक्रिया प्रदान कर सकूं? –
@AndrewLee हाय, मैंने अभी अपना प्रश्न अपडेट किया है, कृपया एक नज़र डालें। – vzhen
आप किसी विशेष कुंजी पर समाप्त होने के लिए "endAt" का उपयोग कर सकते हैं। नीचे मेरी पोस्ट में संपादन देखें। –