मेरा डेटा denormalized है और फायरबेस टीम द्वारा सुझाए गए रिवर्स इंडेक्स का उपयोग करता है। कुछ इसी प्रकार:फायरबेस डाटाबेस - एकाधिक प्रविष्टियां पुनर्प्राप्त करें
{
"users": {
"alovelace": {
"name": "Ada Lovelace",
// Index Ada's groups in her profile
"groups": {
// the value here doesn't matter, just that the key exists
"techpioneers": true,
"womentechmakers": true
}
},
...
},
"groups": {
"techpioneers": {
"name": "Historical Tech Pioneers",
"members": {
"alovelace": true,
"ghopper": true,
"eclarke": true
}
},
...
}
}
अब मैं सभी एडा के समूहों को लोड करना चाहता हूं। मैं आसानी से उस समूह आईडी की एक सूची प्राप्त कर सकता हूं, जो वह उसके उपयोगकर्ता ऑब्जेक्ट का हिस्सा है।
क्या मेरे द्वारा आईडी द्वारा सभी एडी के विशिष्ट समूहों को एक बार में पूछने का कोई तरीका है? या मुझे प्रति समूह आईडी ValueEventListener
बनाने और प्रत्येक समूह को अलग से अनुरोध करने की आवश्यकता है?
सुरक्षा पक्ष पर - मान लीजिए कि प्रत्येक समूह केवल अपने सदस्यों द्वारा पठनीय है, इसलिए मैं सभी समूहों से पूछताछ नहीं कर सकता और तथ्य के बाद उन्हें सॉर्ट नहीं कर सकता।
अधिकांश आवेदनों और व्यक्तिगत रूप से प्रत्येक समूह लोड। यह एक बड़ी प्रदर्शन नाली नहीं है, क्योंकि फायरबेस पावरलाइन डेटाबेस अनुरोधों को पाइपलाइन करता है। Http://stackoverflow.com/questions/35931526/speed-up-fetching-posts-for-my-ocial-network-app-by-using-query-instead-of-obse/35932786#35932786 –
@ फ्रैंकवनपफेलन डू देखें आपका मतलब है कि यदि मैं सूची के माध्यम से लूप करता हूं और उनमें से प्रत्येक के लिए 'ValueEventListener' सेट करता हूं, तो डीबी अपने डेटा को पुनर्प्राप्त करने के तरीके को अनुकूलित करेगा? या क्या मुझे डेटा को एक निश्चित तरीके से अनुरोध करना है? –
सभी अनुरोध एक ही कनेक्शन के माध्यम से जाते हैं। 'Get (1)', 'get (2)', 'get (3) 'और' getAll ([1,2,3])' के बीच एकमात्र अंतर फ्रेम के लिए कुछ ओवरहेड है। –