android - फायरबेज कैसे पता लगाया जाए कि कैश्ड डेटा उपलब्ध है या नहीं



caching firebase (1)

मेरे पास एक ऐसा एप्लिकेशन है जो फायरबेज रीयलटाइम डाटाबेस से कुछ साधारण डेटा खींचता है, और यहाँ चीज़ें सरल बनाने के लिए वह प्रवाह है जिसे मैं करना चाहता हूं।

यदि फोन इंटरनेट से जुड़ा हुआ है:

  • फायरबेस डेटाबेस से डेटा प्राप्त करें

यदि फोन ऑफ़लाइन है

  • यदि फायरबसे कैश में डेटा है -> कैश से डेटा प्राप्त करें
    • अगर फ़ायरबसे कैश में कुछ नहीं है -> एप में स्थानीय रूप से संग्रहीत कुछ डिफ़ॉल्ट डेटा दिखाएं

समस्या यह है कि मुझे यह पता लगाने का संभावित तरीका नहीं है कि फ़ायरबेज कैश में डेटा उपलब्ध है या नहीं। इसलिए जब फ़ोन ऑफ़लाइन होता है तो मुझे नहीं पता कि क्या मुझे स्थानीय स्तर पर संग्रहीत डेटा या फायरबेज डेटाबेस से कैश प्रदर्शित करना चाहिए।


फायरबेज आपके लिए यह करता है

फ़ायरबसे एप्लिकेशन काम करते हैं, भले ही आपका ऐप अस्थायी रूप से अपने नेटवर्क कनेक्शन खो देता है

इसके अलावा फायरबसे ऐप्स स्वचालित रूप से अस्थायी नेटवर्क रुकावट को संभालते हैं। जब नेटवर्क कनेक्टिविटी बहाल हो जाती है तो ऑफ़लाइन और फायरबेज किसी भी लिखता को फिर से रिसाव करते समय कैश्ड डेटा उपलब्ध होता है।

यदि यह पर्याप्त नहीं है और आपको ऑफ़लाइन काम करने की ज़रूरत है तो आप इसे जोड़ने के लिए केवल डिस्क दृढ़ता को सक्षम कर सकते हैं:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

अधिक जानकारी यहां

संपादित करें:
यह पता करने का कोई तरीका नहीं है कि मूल्य स्थानीय कैश से या दूरस्थ सर्वर से आता है या नहीं।

यह जानने का एकमात्र तरीका है कि आपका ऐप वर्तमान में फायरबेज डाटाबेस सर्वर से जुड़ा हुआ है या नहीं।
इसे प्राप्त करने के लिए आप .info/connected मूल्य के लिए सुनकर कनेक्शन स्थिति का पता लगा सकते हैं।





firebase-database