Flutter
...
Data Objects
Membangun Hubungan Satu-ke-Banyak dengan Parse di Flutter
16 mnt
hubungan satu ke banyak di flutter pendahuluan dengan menggunakan parse, anda dapat menyimpan objek data yang membangun hubungan di antara mereka untuk memodelkan perilaku ini, setiap parseobject parseobject dapat digunakan sebagai nilai di parseobject parseobject secara internal, kerangka kerja parse akan menyimpan objek yang dirujuk hanya di satu tempat, untuk menjaga konsistensi itu dapat memberi anda kekuatan ekstra saat membangun dan menjalankan kueri yang kompleks ada tiga jenis hubungan utama satu ke satu satu ke satu , yang membangun hubungan langsung antara dua objek dan hanya mereka; satu ke banyak satu ke banyak , di mana satu objek dapat terkait dengan banyak objek lainnya; banyak ke banyak banyak ke banyak , yang dapat menciptakan banyak hubungan kompleks antara banyak objek dalam panduan ini kami akan merinci bagaimana hubungan satu ke banyak satu ke banyak bekerja menggunakan contoh aplikasi praktis ada dua cara untuk membuat hubungan satu ke banyak satu ke banyak di parse yang pertama adalah menggunakan pointers pointers di kelas anak kelas anak , yang merupakan yang tercepat dalam waktu pembuatan dan kueri yang kedua adalah menggunakan arrays arrays dari pointers pointers di kelas induk yang dapat menyebabkan waktu kueri yang lambat tergantung pada ukuran mereka karena masalah kinerja ini, kami hanya akan menggunakan contoh pointer anda akan mengimplementasikan aplikasi pendaftaran buku flutter dan akan membuat serta mengkueri objek terkait menggunakan pointers pointers di parse hubungan sebagai satu ke satu satu ke satu tidak umum dan kami tidak akan membahasnya dalam panduan kami sebagai contoh, hubungan antara kelas pengguna dan kelas lain yang akan berisi data pengguna sensitif untuk alasan keamanan https //blog back4app com/parse server best practices/ ( 1 4 jangan biarkan pengguna memiliki akses ke data sensitif dari orang lain ) prasyarat versi flutter 2 2 x atau lebih baru https //flutter dev/docs/get started/install android studio https //developer android com/studio atau vs code terinstal (dengan plugin dart dan flutter) sebuah aplikasi dibuat di back4app catatan ikuti tutorial aplikasi parse baru untuk belajar cara membuat aplikasi parse di back4app sebuah aplikasi flutter yang terhubung ke back4app catatan ikuti instal sdk parse di proyek flutter untuk membuat proyek flutter yang terhubung ke back4app sebuah perangkat (atau perangkat virtual) yang menjalankan android atau ios memahami aplikasi buku kelas objek utama yang akan anda gunakan adalah buku buku , menyimpan setiap entri buku dalam pendaftaran juga, ini adalah tiga kelas objek lainnya penerbit penerbit nama penerbit buku, hubungan satu ke banyak dengan buku buku ; genre genre genre buku, hubungan satu ke banyak dengan buku buku perhatikan bahwa untuk contoh ini kita akan menganggap bahwa sebuah buku hanya dapat memiliki satu genre; penulis penulis penulis buku, hubungan banyak ke banyak dengan buku buku , karena sebuah buku dapat memiliki lebih dari satu penulis dan seorang penulis juga dapat memiliki lebih dari satu buku; representasi visual dari model data ini kami akan mengasumsikan bahwa setiap kelas objek ( penerbit penerbit , genre genre ) hanya memiliki atribut tipe string nama nama dan buku buku memiliki judul judul dan tahun tahun , selain dari atribut relasional tambahan dalam panduan sebelumnya, kami telah melihat bagaimana cara menyimpan dan membaca parseobject parseobject jadi dalam panduan ini, kami tidak akan membahas cara menyimpan dan membaca genre genre dan penerbit penerbit objek anda akan menemukan layar berikut di aplikasi buku pendaftaran dan daftar genre pendaftaran dan daftar penerbit pendaftaran buku daftar penerbit dan buku detail buku kami tidak akan menjelaskan kode aplikasi flutter karena fokus utama panduan ini adalah menggunakan flutter dengan parse menggunakan relasi 1 buat template aplikasi buku mari kita jalankan template proyek aplikasi buku terlebih dahulu buka proyek flutter anda dari panduan sebelumnya flutter plugin untuk parse server repositori aplikasi buku flutter https //github com/templates back4app/flutter associations juga tersedia untuk anda kloning dan jalankan proyek tersebut salin file main dart https //github com/templates back4app/flutter associations/blob/master/lib/main dart dan ganti kode anda saat ini dari panduan sebelumnya catatan ketika debug debug parameter dalam fungsi parse() initialize parse() initialize adalah true true , memungkinkan menampilkan panggilan api parse di konsol konfigurasi ini dapat membantu dalam debugging kode disarankan untuk menonaktifkan debug dalam versi rilis langkah 2 hubungkan template ke proyek back4app temukan id aplikasi dan kredensial kunci klien anda dengan menavigasi ke dasbor aplikasi anda di dasbor back4app >pengaturan aplikasi >keamanan & kunci https //www back4app com/docs/parse dashboard/app settings perbarui kode anda di main dart main dart dengan nilai applicationid dan clientkey proyek anda di back4app keyapplicationid = id aplikasi keyclientkey = kunci klien jalankan proyek, dan aplikasi akan dimuat seperti yang ditunjukkan dalam gambar klik pada tambah genre tambah genre untuk mendaftar dan melihat daftar genre genre yang akan digunakan dalam pendaftaran buku klik pada tambahkan penerbit tambahkan penerbit untuk mendaftar dan melihat daftar penerbit penerbit yang akan digunakan dalam pendaftaran buku klik pada tambahkan buku tambahkan buku untuk mendaftar buku buku baru menggunakan hubungan dengan genre genre dan penerbit penerbit klik pada daftar penerbit/buku daftar penerbit/buku untuk melihat daftar penerbit penerbit dan buku buku 3 simpan objek buku dan hubungannya fungsi ini akan membuat buku baru di database back4app dengan hubungan cari fungsi dosavebook dosavebook di file main dart main dart , dan masukkan kode di bawah ini ke dalam future\<void> dosavebook() future\<void> dosavebook() fungsi 1 final book = parseobject('book') 2 set('title', controllertitle text trim()) 3 set('year', int parse(controlleryear text trim())) 4 //the objectid will be converted to a pointer on the save() method 5 set('genre', parseobject('genre') objectid = genre objectid) 6 //you can also convert to a pointer object before the saving using the topointer() method 7 set( 8 'publisher', 9 (parseobject('publisher') objectid = publisher objectid) 10 topointer()); 11 12 await book save(); untuk membangun fungsi ini, ikuti langkah langkah berikut 1\ buat instance baru dari book book kelas dengan perintah parseobject('book') parseobject('book') 2 gunakan fungsi set set untuk mengatur field untuk objek ini 2 1 judul judul adalah atribut teks yang menerima nilai dari pengontrol teks 2 2 genre genre menerima nilai dengan mendefinisikan parseobject parseobject dengan objectid objectid dari genre genre ( parse akan mengonversi menjadi pointer saat disimpan ) 2 3 penerbit penerbit menerima nilai dengan mendefinisikan parseobject parseobject dengan objectid objectid dari publisher publisher ( perhatikan bahwa kita dapat menentukan untuk parse bahwa kita ingin menyimpan sebagai pointer pointer menggunakan topointer() topointer() metode ) 3 panggil fungsi save save di parseobject parseobject , yang secara efektif akan mendaftarkan objek ke database anda di dashboard back4app jalankan aplikasi dan uji fungsi baru klik pada tambah buku tambah buku tombol isi informasi buku aplikasi memerlukan pemilihan penulis (s), tetapi kode untuk mereka hanya akan dibahas di panduan berikutnya klik pada simpan buku simpan buku tombol untuk mengonfirmasi bahwa objek baru disimpan di database dengan relasi, anda dapat mengakses back4app dashboard back4app dashboard dan mengakses kelas buku kelas buku jika anda mengakses kelas buku anda menggunakan dashboard, anda dapat mengklik nilai pointer objek dan anda akan diarahkan ke objek yang dirujuk ini mungkin tampak seperti fitur yang tidak berbahaya, tetapi ini membuat debugging dan pelacakan kesalahan jauh lebih cepat daripada mencarinya secara manual 4 kuery daftar buku dan objek terkaitnya fungsi ini akan mengkueri buku di database back4app dengan menggunakan relasi dengan penerbit melalui penerbit, kita akan mendapatkan daftar buku cari fungsi getbooklist getbooklist di file main dart main dart , lalu ganti kode di bawah ini di dalam future\<list\<parseobject>> getbooklist(string publisherid) future\<list\<parseobject>> getbooklist(string publisherid) fungsi 1 querybuilder\<parseobject> querybook = 2 querybuilder\<parseobject>(parseobject('book')) 3 whereequalto('publisher', 4 (parseobject('publisher') objectid = publisherid) topointer()) 5 orderbyascending('title'); 6 final parseresponse apiresponse = await querybook query(); 7 8 if (apiresponse success && apiresponse results != null) { 9 return apiresponse results; 10 } else { 11 return \[]; 12 } untuk membangun fungsi ini, ikuti langkah langkah berikut buat instance dari parsequery parsequery objek untuk book book kelas masukkan kondisi dalam query, untuk mencari buku buku di mana penerbit penerbit field sama dengan pointer pointer dari publisher parseobject publisher parseobject kita mengurutkan hasil dalam urutan nama nama yang meningkat lakukan metode pencarian query menggunakan query() query() metode jika operasi berhasil, objek dalam book book akan dikembalikan jalankan aplikasi dan uji query baru pertama, klik tombol daftar penerbit/buku daftar penerbit/buku selesai! pada titik ini, anda telah belajar bagaimana cara membuat dan mengquery hubungan satu ke banyak di parse pada flutter flutter dalam panduan berikutnya, kami akan menunjukkan kepada anda bagaimana cara membuat hubungan banyak ke banyak dan bagaimana cara melakukan query yang mengembalikan data dari objek terkait