SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

स्थानीय डीबी के साथ फायरबेस डीबी का प्रयोग करें

यदि आपकी फायरबेस संरचना बहुत जटिल नहीं है, तो आप एक इंटरफ़ेस भी बना सकते हैं जो

. जैसी विधियों को परिभाषित करता है
void addData(Data data);
Data getData(long id);
void editData(Data data, long id);
void deleteData(long id);

फिर उस इंटरफ़ेस को लागू करने वाले 2 वर्ग बनाएं, एक Firebase का उपयोग करके दूसरा SQLite का उपयोग करके।

DatabaseImplementation
FirebaseImplementation

अपने फायरबेस कार्यान्वयन के अंदर, आप सामान्य की तरह डेटा प्रकाशित करेंगे, और एक नया नोड प्रकाशित करेंगे जैसे root/requestUpdate/userId/push/ और पुश में कहां . की जानकारी होगी आप एक अपडेट का अनुरोध करते हैं, और क्या deviceId इसे प्रकाशित किया।

उसके बाद उस उल्लिखित नोड से एक ValueEventListener बंधा हुआ है, और यदि उसे एक नया बच्चा मिलता है, तो क्या यह देखें कि डिवाइस आईडी समान है या नहीं। अगर ऐसा नहीं है, तो FirebaseImplementation . करें डेटा प्राप्त करें आपको मिली जानकारी का उपयोग करना, और फिर डेटाबेस कार्यान्वयन . का उपयोग करना , डेटा जोड़ें . के लिए ।

यह सुनिश्चित करेगा कि जब भी कोई परिवर्तन किया जाता है, तो कोई अन्य लॉग इन क्लाइंट अपने फायरबेस को अपडेट करना जानता होगा। यदि क्लाइंट ऑनलाइन नहीं है, तो अगली बार जब वह ऑनलाइन होगा, तो वह इसे ValueEventListener के संलग्न होने पर ट्रिगर के रूप में करेगा। यह सुनिश्चित करने के लिए कि सभी अनुरोध किए गए हैं, सभी अनुरोधित अपडेट के माध्यम से लूप करना सुनिश्चित करें। आपके द्वारा पूर्ण किए गए किसी भी अपडेट की पुश कुंजियों को स्थानीय डेटाबेस पर भी संग्रहीत करें ताकि आप एक से अधिक बार अपडेट न करें।

मूल रूप से फायरबेस हमेशा अद्यतित रहेगा और उपयोगकर्ता द्वारा एक अलग नोड पर किए गए किसी भी परिवर्तन को संग्रहीत करेगा जिसे सभी क्लाइंट सुनते हैं।

स्पष्ट रूप से इस समाधान में अभी भी कई समस्याएं हैं जिन्हें आपको ठीक करने की आवश्यकता होगी, जैसे कि यह पता लगाना कि अनुरोध को कब हटाना है, नोड अपडेट करें। तार्किक रूप से प्रत्येक उपयोगकर्ता के सिंक होने के बाद लेकिन आप इसे कैसे निर्धारित करते हैं? ...

पहले लॉगिन के लिए, आपको एक populateDatabaseFromFirebase() write लिखना होगा विधि जो पूरी तरह से getDatas और addDatas करेगी। आप यह कैसे करेंगे यह इस बात पर निर्भर करेगा कि आपका डीबी कैसा दिखता है। फिर आप स्टोर करेंगे कि उपयोगकर्ता पहले से ही साझा वरीयताएँ . के साथ लॉग इन कर चुका है और फायरबेस UID

यह सब कहा जा रहा है, यह तभी काम करेगा जब आपका फायरबेस काफी सपाट हो। यदि आपके पास एक जटिल डेटाबेस है, तो सब कुछ बहुत अधिक जटिल और उलझा हुआ हो जाता है और फिर यह बाहरी पुस्तकालय में देखने लायक हो सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टेक्स्ट एडिटर में SQLite क्वेरी परिणाम स्वचालित रूप से खोलें

  2. गतिविधि में सूची प्रदर्शित करने के लिए गतिविधि में कस्टम एडाप्टर कैसे जोड़ें?

  3. एंड्रॉइड डिवाइस में डेटा/डेटा फ़ोल्डर तक कैसे पहुंचें?

  4. एंड्रॉइड स्टूडियो संपत्तियों में स्क्लाइट कॉपी करें काम नहीं कर रहा है

  5. SQLite त्रुटि में एकाधिक पंक्तियाँ सम्मिलित करें (त्रुटि कोड =1)