यहाँ, मैं Firebase Support Team
वास्तव में, मुख्य कारण से मेरे सवाल के लिए इस सवाल का जवाब मिल गया है, मैं सभी डेटा (सहित हो रही लॉग-इन उपयोगकर्ता डेटा और अन्य सभी उपयोगकर्ता का डेटा) मेरे डिवाइस में कैश के रूप में मेरे फायरबेस ऐप का, क्योंकि मैं अपने डेटाबेस के रूट नोड पर keepSynced() का उपयोग कर रहा हूं।
final FirebaseDatabase database = FirebaseDatabase.getInstance();
if (database != null) {
database.setPersistenceEnabled(true);
database.getReference().keepSynced(true);
}
ऊपर कोड स्निपेट के रूप में, डेटाबेस संदर्भ डेटाबेस के नोड जड़ को संदर्भित कर रहा है:
नीचे कोड स्निपेट पर एक नज़र है, जो मैं ऑफ़लाइन क्षमता को सक्षम करने के लिए उपयोग कर रहा हूँ ले लो।
अब, इस डेटाबेस संदर्भ पर, मैं keepSynced() विधि का उपयोग कर रहा हूं। इसलिए, यह डिवाइस में कैश के रूप में सिंक में सभी डेटा रख रहा है और यह करने के लिए एक अच्छी बात नहीं है।
आदर्श रूप में, हम ऑफ़लाइन काम करने के लिए उन databaseReferences हमारे ऐप्लिकेशन के लिए आवश्यक पर keepSynced() विधि का उपयोग करना चाहिए।
यहां कोड स्निपेट के ऊपर, मैं एक और गलती कर रहा हूं जिसका उपयोग मैं setPersistenceEnabled() एप्लिकेशन क्लास पर कर रहा हूं। मुझे इसे अपने लॉन्चर गतिविधि वर्ग पर ले जाना चाहिए।
मेरे उपरोक्त कोड स्निपेट के अनुसार, setPersistenceEnabled() हर बार कॉल किया जाएगा, जब ऐप पहली बार शुरू होगा। यह ऐप इंस्टॉल करने के बाद केवल एक बार उपयोग किया जाना चाहिए।
हम setPersistanceEnabled() को कॉल करने के लिए नीचे दिए गए कोड स्निपेट की तरह कॉल कर सकते हैं।
@Override
public void onCreate() {
super.onCreate();
if (!FirebaseApp.getApps(this).isEmpty()) {
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
}
आप क्या समस्या देख रहे हैं? –
@ डौग स्टीवंसन: अरे डौग, समाधान मिला .. बस नीचे दिए गए मेरे उत्तर पर एक नज़र डालें, आपको मेरी समस्या के बारे में पता चल जाएगा .. –