पृष्ठभूमि

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

प्रस्तावित समाधान

ऐप्पल ऐप स्टोर पर प्रकाशित होने के लिए हमें एक ब्लॉकिंग फीचर को लागू करना होगा। मैंने आसान सोचा, उपयोगकर्ता दस्तावेज़ के भीतर एक फ़ील्ड बनाएं जिसमें "अवरुद्ध उपयोगकर्ता" की एक स्ट्रिंग सरणी हो। अब जब आप फ़ील्ड के लिए क्वेरी करते हैं, तो not in ऑपरेटर का उपयोग करें जिसका Firestore समर्थन करता है और आपके पास दस्तावेज़ों की एक सूची हो सकती है:

  • not in अवरोधित उपयोक्ता सरणी
  • आदेश दिया गया by पूरा हुआटाइमस्टैम्प
  • limit से x तक पेजिनेशन कारणों से

मुद्दा

हालांकि, in और not in ऑपरेटरों के लिए दस्तावेज़ों को पढ़ने के बाद, आप अपने द्वारा फ़िल्टर किए जा रहे तुलना फ़ील्ड से भिन्न फ़ील्ड द्वारा दस्तावेज़ों को ऑर्डर नहीं कर सकते। इस मामले में not in

https://firebase.google.com/docs/firestore/query-data/order-limit-data

प्रश्न

मैं कुछ हद तक एक अवरुद्ध सुविधा को संरचनात्मक रूप से कार्यान्वित करने के तरीके पर नुकसान में हूं जो हमारे GlobalPosts संग्रह में अवरुद्ध उपयोगकर्ताओं को छोड़कर, कालानुक्रमिक रूप से, पेजिनेशन के साथ दस्तावेज़ों को फ़िल्टर करेगा।

मुझे कोई भी प्रस्तावित समाधान सुनना अच्छा लगेगा, चिंता न करें अगर यह हमारी वर्तमान स्कीमा को तोड़ता है तो यह कुछ अन्य विचारों को बढ़ावा दे सकता है, हालांकि हमारी वर्तमान स्कीमा को बनाए रखना बेहतर है।

0
Garrett 14 पद 2020, 08:01
3
आप जो करने की कोशिश कर रहे हैं वह एक फायरस्टोर क्वेरी के साथ संभव नहीं है, चाहे आप डेटा की संरचना कैसे करें। कम से कम, आपको कई प्रश्नों के संयोजन और कुछ क्लाइंट साइड सॉर्टिंग या फ़िल्टरिंग की आवश्यकता होगी। यह आपकी अपेक्षा से अधिक महंगा होने की संभावना है।
 – 
Doug Stevenson
14 पद 2020, 08:35
सलाह के लिए धन्यवाद, एक साधारण क्लाइंट-साइड फ़िल्टर हमारी सुविधा को संभालने में सक्षम था।
 – 
Garrett
16 पद 2020, 08:02

1 उत्तर

सबसे बढ़िया उत्तर

इसे समुदाय विकी के रूप में पोस्ट करना क्योंकि यह प्रश्न पर डौग स्टीवेन्सन की टिप्पणी पर आधारित है:

आप जो करने का प्रयास कर रहे हैं वह एक फायरस्टोर क्वेरी के साथ संभव नहीं है, चाहे आप अपने डेटा की संरचना कैसे करें, क्योंकि आपने दस्तावेज़ीकरण से जो सीमाएं साझा की हैं।

तो आपको कई प्रश्नों के संयोजन और कुछ क्लाइंट साइड सॉर्टिंग या फ़िल्टरिंग की आवश्यकता होगी और यह आपकी अपेक्षा से अधिक महंगा होगा।

1
Rafael Lemos 15 पद 2020, 16:47