जगह की जानकारी के हिसाब से सेवाएं बनाने के लिए, Cloud Firestore में जियोस्पेशल क्वेरी की जा सकती हैं. उदाहरण के लिए, किसी उपयोगकर्ता और आस-पास के दिलचस्पी वाले पॉइंट के बीच की दूरी का पता लगाया जा सकता है. साथ ही, उन्हें सबसे नज़दीकी से सबसे दूर के हिसाब से क्रम में लगाया जा सकता है.
वर्शन के लिए ज़रूरी शर्तें
जियोस्पेशल सर्च सुविधा के लिए, Firestore Enterprise Edition डेटाबेस की ज़रूरत होती है.
शुरू करने से पहले
जियोस्पेशल खोज करने के लिए, आपको सबसे पहले उन फ़ील्ड के लिए जियोस्पेशल इंडेक्स बनाने होंगे जिनमें आपको खोज करनी है.
जियोस्पेशल खोज करना
जियोस्पेशल खोज करने के लिए, search(...) स्टेज के query पैरामीटर में geoDistance एक्सप्रेशन का इस्तेमाल करें.
सिर्फ़ इससे कम या इसके बराबर (<=) ऑपरेटर का इस्तेमाल किया जा सकता है. दूरी को मीटर में मापा जाता है.
उदाहरण के लिए, यहां दी गई क्वेरी, सूची में दिए गए जियोपॉइंट से 1,000 मीटर के दायरे में मौजूद सभी रेस्टोरेंट ढूंढती है.
Web
firestore.pipeline().collection('restaurants') .search({ query: field('location') .geoDistance(new GeoPoint(38.989177, -107.065076)) .lessThan(1000 /* m */) });
iOS
firestore.pipeline().collection("restaurants") .search( query: Field("location") .geoDistance(GeoPoint(latitude: 38.989177, longitude: -107.065076)) .lessThan(1000) )
Android
firestore.pipeline() .collection("restaurants") .search(new SearchOptions() .withQuery(field("location") .geoDistance(new GeoPoint(38.989177, -107.065076)) .lessThan(1000 /* meters */)));
Node.js
firestore.pipeline().collection('restaurants') .search({ query: field('location') .geoDistance(new GeoPoint(38.989177, -107.065076)) .lessThan(1000 /* m */) });