2017-01-05 5 views
6

जब मैं अपने फ़ायरबेस डेटाबेस में कई पथों पर सिंक का उपयोग करता हूं तो ट्रेड-ऑफ क्या होते हैं?फायरबेस रखें सिंक (सत्य)

databaseRef.keepSynced(true); 

मैं इन पथों से सिंक को कभी भी साफ़ नहीं करता हूं।

इसके अतिरिक्त, मैं डेटाबेसRef.keepSynced (सत्य) को कॉल कर सकता हूं; एक ही रास्ते पर कई बार। क्या कोई समस्या है?

मैं भी

FirebaseDatabase.getInstance().setPersistenceEnabled(true); 

उपयोग कर रहा हूँ तो क्या मैं बैटरी जीवन, स्मृति मुद्दों के संदर्भ में इस सिंक के लिए "भुगतान" करते हैं?

उत्तर

3

जब आप keepSynced() method का उपयोग करते हैं, तो आप फायरबेस को databaseRef से सभी डेटा डाउनलोड और कैश करने के लिए कह रहे हैं। मुझे आशा है कि databaseRef आपके डेटाबेस का मूल संदर्भ नहीं है क्योंकि यदि यह है, तो आप अपना संपूर्ण डेटाबेस डाउनलोड कर रहे हैं और यह एक अच्छा अभ्यास नहीं है।

आपको KeepSynced() को कैश नोड्स का उपयोग करना चाहिए जो आपके ऐप को ऑफ़लाइन काम करने के लिए वास्तव में आवश्यक हैं।

आप शायद सोचेंगे कि setPersistanceEnabled(true) के साथ क्या अंतर है। खैर, setPersistanceEnabled(true) केवल उस कैश डेटा को कैश करता है जब उस नोड से जुड़ा श्रोता होता है (जब डेटा कम से कम एक बार पढ़ा जाता है)।

दूसरी ओर, keepSynced(true) उस नोड से सब कुछ कैश करता है, भले ही कोई श्रोता संलग्न न हो।

संबंधित मुद्दे