SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Gunakan Firebase DB dengan DB lokal

Jika struktur firebase Anda tidak terlalu rumit, Anda juga dapat membuat antarmuka yang mendefinisikan metode seperti

void addData(Data data);
Data getData(long id);
void editData(Data data, long id);
void deleteData(long id);

kemudian buat 2 kelas yang mengimplementasikan antarmuka itu, satu menggunakan Firebase dan yang lain menggunakan SQLite.

DatabaseImplementation
FirebaseImplementation

Di dalam implementasi Firebase, Anda akan memublikasikan data seperti biasa, dan memublikasikan satu node baru ke sesuatu seperti root/requestUpdate/userId/push/ dan push akan berisi informasi tentang di mana Anda meminta pembaruan, dan deviceId . apa menerbitkannya.

Kemudian ikat ValueEventListener ke simpul yang disebutkan, dan jika mendapat anak baru, lihat apakah deviceId sama atau tidak. Jika tidak, miliki FirebaseImplementation getData menggunakan informasi yang Anda dapatkan, lalu gunakan DatabaseImplementation , untuk menambahkanData .

Itu akan memastikan bahwa setiap kali perubahan dibuat, klien lain yang masuk akan tahu untuk memperbarui firebase-nya. Jika klien tidak online, saat berikutnya dia online, dia akan melakukannya sebagai pemicu ValueEventListener saat dilampirkan. Pastikan untuk mengulang semua pembaruan yang diminta untuk memastikan semuanya dibuat. Simpan juga tombol tekan dari setiap pembaruan yang Anda selesaikan di database lokal sehingga Anda tidak akan memperbarui lebih dari sekali.

Pada dasarnya firebase akan selalu up to date dan menyimpan setiap perubahan yang dibuat pengguna pada node terpisah yang didengarkan oleh semua klien.

Jelas solusi ini masih memiliki banyak masalah yang perlu Anda perbaiki, seperti mencari tahu kapan harus menghapus node requestUpdate. Logikanya setelah setiap pengguna disinkronkan tetapi bagaimana Anda menentukan ini? ...

Untuk login pertama, Anda perlu menulis populateDatabaseFromFirebase() metode yang akan melakukan banyak getDatas dan addDatas. Bagaimana Anda melakukannya akan tergantung pada tampilan DB Anda. Anda kemudian akan menyimpan bahwa pengguna telah masuk dengan SharedPreferences dan UID firebase .

Itu semua dikatakan, ini hanya akan berfungsi jika firebase Anda cukup datar. Jika Anda memiliki database yang kompleks, maka semuanya menjadi jauh lebih rumit dan terjerat dan mungkin ada baiknya melihat ke perpustakaan eksternal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menghapus item dari database sqlite dengan kelas SQLiteOpenHelper

  2. SQLite AVG

  3. Cara Mendapatkan Tanggal Saat Ini di SQLite

  4. 2 Cara Menyisipkan Baris Baru ke dalam String di SQLite

  5. Bagaimana saya bisa menambahkan kolom baru ke database SQLite setelah aplikasi Android dirilis?