Flutter
Parse SDK (REST)
Implementasi Parse Cloud Code di Aplikasi Flutter
18 mnt
menggunakan cloud functions dalam aplikasi flutter pendahuluan untuk aplikasi yang kompleks, terkadang anda hanya memerlukan sedikit logika yang tidak berjalan di perangkat seluler cloud code membuat ini menjadi mungkin cloud code mudah digunakan karena dibangun di atas sdk javascript parse yang mendukung ribuan aplikasi satu satunya perbedaan adalah bahwa kode ini berjalan di server parse anda daripada berjalan di perangkat seluler pengguna anda dapat menggunakan cloud code untuk memindahkan pemrosesan ke server parse sehingga meningkatkan kinerja aplikasi anda yang terlihat anda dapat membuat hook yang berjalan setiap kali sebuah objek disimpan atau dihapus ini berguna jika anda ingin memvalidasi atau membersihkan data anda anda juga dapat menggunakan cloud code untuk memodifikasi objek terkait atau memulai proses lain seperti mengirim notifikasi push ketika anda memperbarui cloud code anda, itu akan tersedia untuk semua lingkungan seluler secara instan anda tidak perlu menunggu rilis baru aplikasi anda ini memungkinkan anda mengubah perilaku aplikasi secara langsung dan menambahkan fitur baru lebih cepat bagian ini menjelaskan cara membuat dan menerapkan cloud code, diikuti dengan cara memanggil fungsi cloud dalam proyek flutter melalui back4app dalam panduan ini, fokusnya adalah untuk menunjukkan penggunaan cloud function melalui flutter anda dapat menemukan informasi yang lebih mendalam di dokumentasi resmi cloud code parse prasyarat untuk menyelesaikan tutorial ini, anda akan membutuhkan 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 tujuan jalankan parse cloud code di back4app dari aplikasi flutter 1 buat file cloud code pergi ke aplikasi anda di situs web back4app https //www back4app com/ dan klik pada pengaturan server pengaturan server temukan cloud code cloud code dan klik pada fungsi & hosting web fungsi & hosting web ini terlihat seperti ini 3\ unggah atau buat file baru (anda juga dapat mengedit main js main js file saat ini langsung di browser) kemudian, klik pada deploy deploy seperti yang ditunjukkan di sini file anda main js main js seharusnya terlihat seperti ini 1 parse cloud define("hello", async (request) => { 2 console log("hello from cloud code!"); 3 return "hello from cloud code!"; 4 }); 5 6 parse cloud define("sumnumbers", async (request) => { 7 return (request params number1 + request params number2); 8 }); 9 10 parse cloud define("createtodo", async (request) => { 11 const title = request params title; 12 const done = request params done; 13 14 const todo = parse object extend('todo'); 15 const todo = new todo(); 16 todo set('title', title); 17 todo set('done', done); 18 19 try { 20 await todo save(); 21 return todo; 22 } catch (error) { 23 console log('todo create error ' + error code + ' ' + error message); 24 } 25 }); 26 27 parse cloud define("getlisttodo", async (request) => { 28 let query = new parse query("todo"); 29 query descending("done"); 30 return await query find(); 31 }); anda mengirimkan parameter ke fungsi cloud anda dari aplikasi flutter anda dan mengaksesnya di dalam request params request params objek 2 memahami kelas parsecloudfunction kelas parsecloudfunction parsecloudfunction menyediakan metode untuk berinteraksi dengan parse cloud functions fungsi cloud dapat dipanggil dengan parsecloudfunction execute({parameters params}) parsecloudfunction execute({parameters params}) yang mengembalikan objek peta atau parsecloudfunction executeobjectfunction<>({parameters params}) parsecloudfunction executeobjectfunction<>({parameters params}) yang mengembalikan parseobject parameter bersifat opsional dan diharapkan objek peta 3 panggil fungsi cloud parse sekarang setelah anda menerapkan fungsi cloud, kita dapat memanggil fungsi tersebut menggunakan flutter contoh 1 panggil fungsi cloud dan dapatkan hasilnya 1 //executes a cloud function with no parameters that returns a map object 2 final parsecloudfunction function = parsecloudfunction('hello'); 3 final parseresponse parseresponse = await function execute(); 4 if (parseresponse success && parseresponse result != null) { 5 print(parseresponse result); 6 } hasil yang ditampilkan di konsol akan menjadi contoh 2 panggil fungsi cloud dengan parameter dan dapatkan hasilnya 1 //executes a cloud function with parameters that returns a map object 2 final parsecloudfunction function = parsecloudfunction('sumnumbers'); 3 final map\<string, dynamic> params = \<string, dynamic>{ 4 'number1' 10, 5 'number2' 20 6 }; 7 final parseresponse parseresponse = 8 await function execute(parameters params); 9 if (parseresponse success) { 10 print(parseresponse result); 11 } hasil yang ditampilkan di konsol akan menjadi contoh 2 1 panggil fungsi cloud dengan parameter dan dapatkan hasilnya 1 //executes a cloud function with parameters that returns a map object 2 final parsecloudfunction function = parsecloudfunction('sumnumbers'); 3 final map\<string, dynamic> params = \<string, dynamic>{ 4 'number1' 10, 5 'number2' 20 6 }; 7 final parseresponse parseresponse = 8 await function execute(parameters params); 9 if (parseresponse success) { 10 print(parseresponse result); 11 } contoh 3 panggil fungsi cloud dengan parameter dan dapatkan parseobject sebagai hasil 1 //executes a cloud function that returns a parseobject type 2 final parsecloudfunction function = parsecloudfunction('createtodo'); 3 final map\<string, dynamic> params = \<string, dynamic>{ 4 'title' 'task 1', 5 'done' false 6 }; 7 final parseresponse parseresponse = 8 await function executeobjectfunction\<parseobject>(parameters params); 9 if (parseresponse success && parseresponse result != null) { 10 if (parseresponse result\['result'] is parseobject) { 11 //transforms the return into a parseobject 12 final parseobject parseobject = parseresponse result\['result']; 13 print(parseobject objectid); 14 } 15 } hasil yang ditampilkan di konsol akan menjadi contoh 4 panggil fungsi cloud yang mengembalikan daftar peta yang dapat diubah menjadi parseobject 1 //executes a cloud function with parameters that returns a map object 2 final parsecloudfunction function = parsecloudfunction('getlisttodo'); 3 final parseresponse parseresponse = await function execute(); 4 if (parseresponse success) { 5 if (parseresponse result != null) { 6 for (final todo in parseresponse result) { 7 //use fromjson method to convert map in parseobject 8 print(parseobject('todo') fromjson(todo)); 9 } 10 } 11 } hasil yang ditampilkan di konsol akan menjadi 1 flutter {"classname" "todo","objectid" "cr3g4rcct1","createdat" "2021 06 23t03 20 34 933z","updatedat" "2021 06 23t03 20 34 933z","title" "task 1","done"\ false} 2 flutter {"classname" "todo","objectid" "6barcicpke","createdat" "2021 06 23t03 20 54 294z","updatedat" "2021 06 23t03 20 54 294z","title" "task 1","done"\ false} 3 flutter {"classname" "todo","objectid" "tyza74l89q","createdat" "2021 06 23t03 39 42 049z","updatedat" "2021 06 23t03 39 42 049z","title" "task 1","done"\ false} 4 flutter {"classname" "todo","objectid" "arjm8q7h8d","createdat" "2021 06 24t03 33 27 925z","updatedat" "2021 06 24t03 33 27 925z","title" "task 1","done"\ false} 5 panggil fungsi cloud dari flutter mari kita gunakan contoh panggilan fungsi cloud di aplikasi flutter kita, dengan antarmuka yang sederhana buka proyek flutter anda, pergi ke main dart main dart file, bersihkan semua kode, dan ganti dengan 1 import 'package\ flutter/cupertino dart'; 2 import 'package\ flutter/material dart'; 3 import 'package\ parse server sdk flutter/parse server sdk dart'; 4 5 void main() async { 6 widgetsflutterbinding ensureinitialized(); 7 8 final keyapplicationid = 'your app id here'; 9 final keyclientkey = 'your client key here'; 10 11 final keyparseserverurl = 'https //parseapi back4app com'; 12 13 await parse() initialize(keyapplicationid, keyparseserverurl, 14 clientkey keyclientkey, debug true); 15 16 runapp(materialapp( 17 title 'flutter geopoint', 18 debugshowcheckedmodebanner false, 19 home homepage(), 20 )); 21 } 22 23 class homepage extends statefulwidget { 24 @override 25 homepagestate createstate() => homepagestate(); 26 } 27 28 class homepagestate extends state\<homepage> { 29 30 void docallcloudcodehello() async { 31 //executes a cloud function with no parameters that returns a map object 32 final parsecloudfunction function = parsecloudfunction('hello'); 33 final parseresponse parseresponse = await function execute(); 34 if (parseresponse success && parseresponse result != null) { 35 print(parseresponse result); 36 } 37 } 38 39 void docallcloudcodesumnumbers() async { 40 //executes a cloud function with parameters that returns a map object 41 final parsecloudfunction function = parsecloudfunction('sumnumbers'); 42 final map\<string, dynamic> params = \<string, dynamic>{ 43 'number1' 10, 44 'number2' 20 45 }; 46 final parseresponse parseresponse = 47 await function execute(parameters params); 48 if (parseresponse success) { 49 print(parseresponse result); 50 } 51 } 52 53 void docallcloudcodecreatetodo() async { 54 //executes a cloud function that returns a parseobject type 55 final parsecloudfunction function = parsecloudfunction('createtodo'); 56 final map\<string, dynamic> params = \<string, dynamic>{ 57 'title' 'task 1', 58 'done' false 59 }; 60 final parseresponse parseresponse = 61 await function executeobjectfunction\<parseobject>(parameters params); 62 if (parseresponse success && parseresponse result != null) { 63 if (parseresponse result\['result'] is parseobject) { 64 //transforms the return into a parseobject 65 final parseobject parseobject = parseresponse result\['result']; 66 print(parseobject tostring()); 67 } 68 } 69 } 70 71 void docallcloudcodegetlisttodo() async { 72 //executes a cloud function with parameters that returns a map object 73 final parsecloudfunction function = parsecloudfunction('getlisttodo'); 74 final parseresponse parseresponse = await function execute(); 75 if (parseresponse success) { 76 if (parseresponse result != null) { 77 for (final todo in parseresponse result) { 78 //use fromjson method to convert map in parseobject 79 print(parseobject('todo') fromjson(todo)); 80 } 81 } 82 } 83 } 84 85 @override 86 widget build(buildcontext context) { 87 return scaffold( 88 body padding( 89 padding const edgeinsets all(16 0), 90 child column( 91 crossaxisalignment crossaxisalignment stretch, 92 children \[ 93 container( 94 height 200, 95 child image network( 96 'https //blog back4app com/wp content/uploads/2017/11/logo b4a 1 768x175 1 png'), 97 ), 98 center( 99 child const text('flutter on back4app call clode code', 100 style textstyle(fontsize 18, fontweight fontweight bold)), 101 ), 102 sizedbox( 103 height 8, 104 ), 105 container( 106 height 50, 107 child elevatedbutton( 108 onpressed docallcloudcodehello, 109 child text('cloud code hello'), 110 style elevatedbutton stylefrom(primary colors blue)), 111 ), 112 sizedbox( 113 height 8, 114 ), 115 container( 116 height 50, 117 child elevatedbutton( 118 onpressed docallcloudcodesumnumbers, 119 child text('cloud code sumnumber'), 120 style elevatedbutton stylefrom(primary colors blue)), 121 ), 122 sizedbox( 123 height 8, 124 ), 125 container( 126 height 50, 127 child elevatedbutton( 128 onpressed docallcloudcodecreatetodo, 129 child text('cloud code createtodo'), 130 style elevatedbutton stylefrom(primary colors blue)), 131 ), 132 sizedbox( 133 height 8, 134 ), 135 container( 136 height 50, 137 child elevatedbutton( 138 onpressed docallcloudcodegetlisttodo, 139 child text('cloud code getlisttodo'), 140 style elevatedbutton stylefrom(primary colors blue)), 141 ), 142 ], 143 ), 144 )); 145 } 146 } temukan id aplikasi dan kredensial kunci klien anda dengan menavigasi ke dasbor aplikasi anda di situs web back4app https //www back4app com/ perbarui kode anda di main dart main dart dengan nilai applicationid dan clientkey proyek anda di back4app keyapplicationid = id aplikasi id aplikasi keyclientkey = kunci klien kunci klien jalankan proyek, dan aplikasi akan dimuat seperti yang ditunjukkan dalam gambar kesimpulan pada tahap ini, anda dapat mengkode dan memanggil cloud code anda sendiri di aplikasi flutter anda menggunakan fitur inti parse server melalui back4app!