Firebase Cloud Firestore में एक संग्रह में निकटतम GeoPoints को कैसे क्वेरी करें?




google-cloud-firestore (3)

नया फायरस्टार डीबी मुझे जियो पॉइंट्स स्टोर करने की अनुमति देता है। क्या उनके आधार पर क्वेरी करने का कोई तरीका है?

इसलिए उदाहरण के लिए अगर मेरे संग्रह के प्रत्येक दस्तावेज़ को टाइप geopoint का एक location मिला। मैं एक मनमानी समन्वय के लिए निकटतम 10 दस्तावेज़ कैसे प्राप्त कर सकता हूं?

दस्तावेज़ीकरण इसे कवर नहीं करता है। मैं इस तरह से सामान की कोशिश की:

someRef.where('location', '>', geopoint).limit(10).get();

जाहिर है इसका कोई मतलब नहीं है, लेकिन मैं यहां कुछ सामान की कोशिश कर रहा हूं make


@Problemsofsumit से यह प्रश्न पूछने के बाद से एक नई परियोजना शुरू की गई है। परियोजना को GEOFIRestore कहा जाता है।

इस लाइब्रेरी के साथ आप एक वृत्त के भीतर क्वेरी दस्तावेज़ जैसे प्रश्न कर सकते हैं:

  const geoQuery = geoFirestore.query({
    center: new firebase.firestore.GeoPoint(10.38, 2.41),
    radius: 10.5
  });

आप npm के माध्यम से GeoFirestore स्थापित कर सकते हैं। आपको अलग से Firebase इंस्टॉल करना होगा (क्योंकि यह जियोफाइस्टोर के लिए सहकर्मी निर्भरता है):

$ npm install geofirestore firebase --save

आप इसे cdn: https://cdn.jsdelivr.net/npm/[email protected]/dist/geofirestore.min.js माध्यम से लिंक कर सकते हैं


अल्गोलिया जैसी थर्ड पार्टी सेवाओं का उपयोग करने के बजाय, आईओएस और एंड्रॉइड दोनों के लिए आई नई लाइब्रेरी का उपयोग करेगा जो कि फायरस्टार के लिए जियोफायर की नकल करता है। नई लाइब्रेरी, जिसे GeoFirestore कहा जाता है, पूरी तरह से प्रलेखित और अच्छी तरह से परीक्षण की गई है। मैंने इस लाइब्रेरी का उपयोग पहले से ही कई डेमो प्रोजेक्ट्स में किया है और यह पूरी तरह से काम करता है। इसे आजमा कर देखें!


हमने अभी तक जियोक्वेरीज़ को उजागर नहीं किया है, इसलिए वर्तमान में ऐसा करने का कोई तरीका नहीं है।

ऐतिहासिक रूप से, geohashes डेटाबेस ने geohashes नामक एक लाइब्रेरी में geohashes का इस्तेमाल किया था geohashes यह देखते हुए कि हम निकट भविष्य में वास्तविक जियोक्वेरीज़ को उजागर करने की योजना बना रहे हैं, हमने उस लाइब्रेरी को फायरस्टार में अपडेट नहीं किया है। हालांकि खुद कुछ ऐसा ही करने का तरीका जानने के लिए, इस वीडियो पर एक नज़र डालें।





google-cloud-firestore