Flutter
Parse SDK (REST)
Operasi CRUD Parse di Flutter dengan Back4App
10 mnt
panduan ini menunjukkan cara mengelola objek parse di back4app menggunakan plugin flutter untuk parse server anda akan mempelajari operasi crud dasar buat, baca, perbarui, dan hapus tutorial ini menggunakan aplikasi todo sederhana untuk menggambarkan operasi ini penyimpanan data backend back4app berputar di sekitar parseobject , yang menyimpan pasangan kunci nilai dari data yang kompatibel dengan json penyimpanan data back4app mengakomodasi berbagai jenis data umum, termasuk string, angka, boolean, datetime, geopoints, pointers, relasi, serta daftar dan objek pada dasarnya, ini mendukung data apa pun yang dapat dikodekan dalam format json, memberikan solusi yang fleksibel dan kuat untuk berbagai kebutuhan penyimpanan data prasyarat untuk menyelesaikan tutorial ini, anda akan membutuhkan versi flutter 3 x x atau lebih baru 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 1\ buat objek fungsi savetodo membuat tugas baru dengan judul dan status done yang diatur ke false berikut cara kerjanya inisialisasi objek parse dengan mengatur atributnya buat sebuah instance dari parseobject untuk kelas anda (misalnya, 'todo') gunakan metode set untuk mendefinisikan pasangan kunci nilai simpan objek panggil metode save untuk menyimpan objek di database future\<void> savetodo(string title) async { final todo = parseobject('todo') set('title', title) set('done', false); await todo save(); } 2\ baca objek fungsi gettodo mengquery database dan mengembalikan daftar tugas berikut cara kerjanya inisialisasi query buat instance dari querybuilder untuk kelas anda eksekusi query gunakan metode query untuk mengambil data tangani respons periksa apakah query berhasil dan proses hasilnya future\<list\<parseobject>> gettodo() async { querybuilder\<parseobject> querytodo = querybuilder\<parseobject>(parseobject('todo')); final parseresponse apiresponse = await querytodo query(); if (apiresponse success && apiresponse results != null) { return apiresponse results as list\<parseobject>; } else { return \[]; } } perbarui fungsi listview\ builder untuk mengekstrak dan menampilkan nilai objek parse // get parse object values final vartodo = snapshot data!\[index]; final vartitle = vartodo get\<string>('title')!; final vardone = vartodo get\<bool>('done')!; 3\ perbarui objek pembaruan updatetodo fungsi memperbarui status tugas yang ada berikut cara kerjanya inisialisasi objek parse dan atur atribut buat instance dari parseobject dan atur objectid gunakan metode set untuk memperbarui pasangan kunci nilai simpan objek panggil metode save untuk memperbarui objek di database future\<void> updatetodo(string id, bool done) async { var todo = parseobject('todo') objectid = id set('done', done); await todo save(); } 4\ hapus objek fungsi deletetodo menghapus tugas yang ada dari database berikut cara kerjanya inisialisasi objek parse buat instance dari parseobject dan atur objectid hapus objek panggil metode delete untuk menghapus objek dari database future\<void> deletetodo(string id) async { var todo = parseobject('todo') objectid = id; await todo delete(); } kode contoh lengkap berikut adalah kode lengkap untuk aplikasi todo sederhana yang terintegrasi dengan backend back4app import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your app id here'; const keyclientkey = 'your client key here'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(const materialapp(home todoapp())); } class todoapp extends statefulwidget { const todoapp({super key}); @override // ignore library private types in public api todoappstate createstate() => todoappstate(); } class todoappstate extends state\<todoapp> { list\<parseobject> tasks = \[]; texteditingcontroller taskcontroller = texteditingcontroller(); @override void initstate() { super initstate(); gettodo(); } @override widget build(buildcontext context) { return materialapp( debugshowcheckedmodebanner false, theme themedata( primarycolor colors white, hintcolor colors black, scaffoldbackgroundcolor colors white, appbartheme appbartheme(backgroundcolor color fromargb(255, 68, 122, 246))), home scaffold( appbar appbar( title const text('todo list'), ), body container( decoration boxdecoration( border border all(color colors black), ), child column( children \[ const sizedbox(height 20), buildtaskinput(), const sizedbox(height 20), expanded(child buildtasklist()), ], ), ), ), ); } widget buildtaskinput() { return padding( padding const edgeinsets symmetric(horizontal 20), child row( children \[ expanded( child textfield( controller taskcontroller, decoration inputdecoration( hinttext 'enter tasks', filled true, fillcolor colors grey\[200], border outlineinputborder( borderradius borderradius circular(8), borderside borderside none, ), ), ), ), const sizedbox(width 10), elevatedbutton( onpressed addtodo, style buttonstyle( foregroundcolor materialstateproperty all\<color>(colors black)), child const text('add'), ), ], ), ); } widget buildtasklist() { return listview\ builder( itemcount tasks length, itembuilder (context, index) { final vartodo = tasks\[index]; final vartitle = vartodo get\<string>('title') ?? ''; bool done = vartodo get\<bool>('done') ?? false; return listtile( title row( children \[ checkbox( value done, onchanged (newvalue) { updatetodo(index, newvalue!); }, ), expanded(child text(vartitle)), ], ), trailing iconbutton( icon const icon(icons delete), onpressed () { deletetodo(index, vartodo objectid!); }, ), ); }, ); } future\<void> addtodo() async { string task = taskcontroller text trim(); if (task isnotempty) { var todo = parseobject('todo') set('title', task) set('done', false); var response = await todo save(); if (response success) { setstate(() { tasks add(todo); }); taskcontroller clear(); } else { // handle error } } } future\<void> updatetodo(int index, bool done) async { final vartodo = tasks\[index]; final string id = vartodo objectid tostring(); var todo = parseobject('todo') objectid = id set('done', done); var response = await todo save(); if (response success) { setstate(() { tasks\[index] = todo; }); } else { // handle error } } future\<void> gettodo() async { var querybuilder = querybuilder\<parseobject>(parseobject('todo')); var apiresponse = await querybuilder query(); if (apiresponse success && apiresponse results != null) { setstate(() { tasks = apiresponse results as list\<parseobject>; }); } else { // handle error } } future\<void> deletetodo(int index, string id) async { var todo = parseobject('todo') objectid = id; var response = await todo delete(); if (response success) { setstate(() { tasks removeat(index); }); } else { // handle error } } } aplikasi anda harus terlihat seperti ini kesimpulan anda sekarang telah mengimplementasikan operasi crud dasar dalam aplikasi flutter menggunakan parse di back4app tutorial ini menunjukkan cara menambahkan, mengambil, memperbarui, dan menghapus tugas dalam aplikasi todo