2016-01-21 24 views
8

क्या नवीनतम डेटा खींचने के लिए आईओएस एसडीके का उपयोग करके फायरबेस कैश को मैन्युअल रूप से और तुरंत रीफ्रेश करने का कोई तरीका है (मान लीजिए कि आप ऑनलाइन हैं)? उदाहरण के लिए, अगर मैंने फायरबेस पर अपने डेटा में कुछ बदलाव किए हैं, तो मैं चाहता हूं कि मेरा ऐप तुरंत इसे प्रतिबिंबित करे, लेकिन दृढ़ता से चालू होने पर, आमतौर पर ऐप के कुछ पुनरारंभ होते हैं।ताज़ा करें फायरबेस आईओएस एसडीके कैश तुरंत

मैं हाल ही में तो जैसे मेरे एप्लिकेशन में दृढ़ता चालू:

Firebase.defaultConfig().persistenceEnabled = true 

यह बहुत अच्छा काम किया है, लेकिन अब मेरे ऐप भी एक इंटरनेट कनेक्शन के साथ बहुत बार यह डेटा को ताज़ा नहीं है। मैं here का उल्लेख ऑफ़लाइन क्षमताओं का उपयोग कर रहा हूं।

1) observeSingleEventOfType का उपयोग कर, लेकिन ref.keepSynced(true) की स्थापना रखें:

+2

"दृढ़ता से चालू होने पर, आमतौर पर ऐप के कुछ पुनरारंभ होते हैं" ऐसा नहीं होना चाहिए, जब तक कि आप 'निरीक्षणSingleEventOfType' का उपयोग न करें। चूंकि 'ObsSingleEventOfType' कैश किए गए संस्करण के लिए तत्काल आग लग जाएगा, इसे कभी भी नया संस्करण नहीं मिलेगा। समाधान 'ObsSingleEventOfType' और' persistenceEnabled = true' दोनों का उपयोग नहीं करना है। –

+2

यह सुनिश्चित करने के लिए कि कैश स्वचालित रूप से अपडेट हो जाए, '[ref keepSynced: YES];' पर कॉल करें। https://www.firebase.com/docs/ios/guide/offline-capabilities.html#section-prioritizing-the-local-cache –

+0

तो आपकी पहली टिप्पणी के मुताबिक, 'keepSynced' भी काम नहीं करेगा अगर मैं' मैं 'निरीक्षणSingleEventOfType' का उपयोग कर? – tfrank377

उत्तर

8

मैं दृढ़ता के साथ एक ही समस्या थी और यहाँ दो विकल्प इसे सुलझाने कर रहे हैं। यह आपके डेटा में होने वाले परिवर्तनों को नहीं सुन पाएगा, लेकिन इस कोड को निष्पादित करने के बाद यह डेटा को रीफ्रेश करता है। मैंने अपने एफएक्यू अनुभाग के लिए यह विकल्प चुना है जिसे स्क्रीन खोले जाने पर बस एक बार अपडेट करने की आवश्यकता है (viewDidLoad)।

2) observeEventOfType का उपयोग करें। यह हमेशा आपके डेटा को सिंक में रखेगा और जैसे ही आपका डेटा बदलता है, फिर से निष्पादित होगा।

+0

यह मेरे आईफोन 7+ पर ठीक काम करता है, लेकिन मेरे आईफोन 5 एस पर नहीं, लेकिन आईओएस 10 चला रहा है ... क्या आईफोन 5 एस पर काम नहीं करने का कारण हो सकता है? काम नहीं कर रहा है कि "तत्काल" प्रतिक्रिया गुम है लेकिन सर्वर कॉल हमेशा – swalkner

+0

धन्यवाद बहुत राफेल –

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