firebase - फायरस्टार: असमानता के साथ एक क्वेरी कैसे करें/बराबर नहीं




google-cloud-firestore (2)

फायरबेस डॉक्यूमेंटेशन से

ख! = खंड के साथ प्रश्न। इस स्थिति में, आपको क्वेरी को अधिक-से-अधिक क्वेरी और कम-से-कम क्वेरी से विभाजित करना चाहिए। उदाहरण के लिए, हालांकि क्वेरी क्लॉज जहां ("आयु", "! =", "30") समर्थित नहीं है, आप दो क्वेरी को मिलाकर एक ही परिणाम प्राप्त कर सकते हैं, एक जहां क्लॉज़ है ("आयु", "< "," 30 ") और एक खंड के साथ जहां (" आयु ","> ", 30)।

मैं Firestore संग्रह से सिर्फ मेरे द्वारा नहीं लिखा लेख का चयन करना चाहते हैं।
क्या यह वास्तव में इतना कठिन है?

हर लेख में "owner_uid" फ़ील्ड है।

बस:
मैं सिर्फ "select * from articles where uid<>request.auth.uid" करना चाहता हूँ "select * from articles where uid<>request.auth.uid" बराबर लिखना चाहते "select * from articles where uid<>request.auth.uid"


फायरस्टार असमानता जांच प्रदान नहीं करता है। documentation अनुसार:

जहां () विधि तीन मापदंडों को लेती है: फ़िल्टर करने के लिए एक फ़ील्ड, एक तुलना ऑपरेशन, और एक मूल्य। तुलना <, <=, ==,>, या> = हो सकती है।

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

यदि आपको किसी विशेष आइटम को निकालने के लिए अपने परिणामों को फ़िल्टर करने की आवश्यकता है, तो आप अभी भी स्थानीय रूप से ऐसा कर सकते हैं।

आपके पास एक अलग मूल्य को बाहर करने के लिए कई प्रश्नों का उपयोग करने का विकल्प है। कुछ इस तरह, यदि आप 12 को छोड़कर सब कुछ चाहते हैं <मूल्य 12 के लिए, तो मूल्य> 12 के लिए क्वेरी करें, फिर क्लाइंट में परिणाम मर्ज करें।