2017-10-20 11 views
11

मेरे पास एक दस्तावेज़ "उपयोगकर्ता" है जिसमें "फोटो" नामक कुंजी है। यहां स्ट्रिंग की एक सरणी सहेजी जा रही है, अर्थात् "फोटो" दस्तावेजों की आईडी।फायरस्टोर: दस्तावेज़ की सरणी में आइटम द्वारा क्वेरी

मैं इस "फोटो" फ़ील्ड द्वारा "उपयोगकर्ता" से पूछताछ करना चाहता हूं: मैं उन सभी उपयोगकर्ताओं को चाहता हूं जिनके पास "फोटो" संपत्ति में यह आईडी है।

क्या यह फायरस्टोर के माध्यम से संभव है?

उत्तर

11

दुर्भाग्यवश अभी तक नहीं, हालांकि यह हमारे रोडमैप पर है।

इस दौरान, आप के रूप में के बजाय एक मानचित्र का उपयोग करने, की आवश्यकता होगी:

photos: { 
    id1: true 
    id2: true 
} 

अब आप photos.id1 == true से छान कर ID1 के साथ सभी उपयोगकर्ताओं को खोजने के कर सकते हैं।

Firebase documentation में ऐसे सेट पूछने के बारे में और पढ़ें।

+4

क्या यह रोडमैप कहीं प्रकाशित हुआ है? बस उत्सुक। –

+0

यह नहीं है। हम आम तौर पर भविष्य की विशेषताओं के बारे में बात नहीं करते हैं क्योंकि चीजें अनपेक्षित रूप से उस प्राथमिकता को बदल सकती हैं (या यहां तक ​​कि व्यवहार्यता)। –

+2

@DanMcGrath क्या इस फ़ीचर/रोडमैप में कोई अपडेट है? –

0

यहाँ कुछ के रूप में जवाब पर विस्तार का एक सा प्रत्येक कुंजी के लिए अनुक्रमणिका बनाने के लिए होने के बारे में उलझन होने लगते हैं, इस firestore पहले से ही अनुक्रमित सरल प्रश्नों के लिए अपने डेटा को इस प्रकार आप

documentReference.where('param','==','value').onSnapshot(...) 
की तरह एक साधारण क्वेरी कर सकते हैं

लेकिन जब तक आप उन पैरामीटर के लिए अपना डेटा इंडेक्स नहीं करते हैं तब तक आप एक कंपाउंड क्वेरी नहीं कर सकते हैं। तो तुम अनुक्रमित की आवश्यकता होगी इस तरह कुछ करने के लिए सक्षम होने के लिए:

documentReference.where('param','==','value').where(..otherparams...).onSnapshot(...) 

अतः जब तक आप उन्हें

usersCollection :      (a collection) 
    uidA:        (a document) 
     photoField:      (a field value that is a map or object) 
      fieldID1 : true    (a property of the photoField) 
      fieldID2 : true    (a property of the photoField) 
      etc ... 

बचा सकता है और आप बस उपयोगकर्ता क्वेरी कर सकता है के रूप में आप एक आईडी के लिए फ़ोटो जरूरत (एस) जिनके पास है, फ़ील्ड आईडी 1 अपनी फोटो फ़ील्ड में किसी भी इंडेक्स और नीचे की क्वेरी की आवश्यकता के बिना।

firestore.doc('usersCollection/uidA').where('photoField.fieldID1','==',true).onSnapshot(...) 
संबंधित मुद्दे