การเข้ารหัส Live Queries บนแอป Android ด้วย Back4App
10 นาที
แอปพลิเคชันเรียลไทม์โดยใช้ live queries บทนำ live queries ถูกออกแบบมาเพื่อใช้ใน แอปพลิเคชันที่ตอบสนองแบบเรียลไทม์ , ซึ่งการใช้พาราดิ้มการค้นหาแบบดั้งเดิมจะมีปัญหาบางอย่าง เช่น เวลาในการตอบสนองที่เพิ่มขึ้นและการใช้เครือข่ายและเซิร์ฟเวอร์ที่สูง live queries ควรใช้ในกรณีที่คุณต้องการอัปเดตหน้าเว็บอย่างต่อเนื่องด้วยข้อมูลใหม่จากฐานข้อมูล ซึ่งมักเกิดขึ้นในเกมออนไลน์ โปรแกรมส่งข้อความ และรายการที่ต้องทำที่แชร์กัน ส่วนนี้อธิบายวิธีการใช้ live query ของ back4app ในสภาพแวดล้อม android ผ่าน back4app https //www back4app com/ บทแนะนำนี้ใช้แอปพื้นฐานที่สร้างขึ้นใน android studio arctic fox 2020 3 1 patch 1 โดยมี \<font color="#2166ae">compilesdk 30\</font> , \<font color="#2166ae">minsdk 21\</font> และ \<font color="#2166ae">targetsdk 30\</font> ในทุกเวลา คุณสามารถเข้าถึงโปรเจกต์ทั้งหมดได้ผ่านที่เก็บ github ของเรา ที่เก็บตัวอย่าง kotlin https //github com/templates back4app/android crud operations kotlin ที่เก็บตัวอย่าง java https //github com/templates back4app/android crud operations java เป้าหมาย นี่คือภาพรวมของสิ่งที่เราจะทำให้สำเร็จ ข้อกำหนดเบื้องต้น ในการทำตามบทเรียนนี้ เราต้องการ android studio https //developer android com/studio/index html แอปที่สร้างขึ้นบน back4app หมายเหตุ ติดตาม บทเรียนการสร้าง parse app ใหม่ https //www back4app com/docs/get started/new parse app เพื่อเรียนรู้วิธีการสร้าง parse app บน back4app แอป android ที่เชื่อมต่อกับ back4app หมายเหตุ ติดตาม บทเรียนการติดตั้ง parse sdk https //www back4app com/docs/android/parse android sdk เพื่อสร้างโปรเจกต์ android studio ที่เชื่อมต่อกับ back4app อุปกรณ์ (หรือ อุปกรณ์เสมือน https //developer android com/studio/run/managing avds html ) ที่รัน android 4 1 (jelly bean) หรือใหม่กว่า 1 เปิดใช้งาน live query ก่อนที่คุณจะเริ่มเขียนโค้ด จำเป็นต้องมีคลาสในฐานข้อมูลของคุณเพื่อเปิดใช้งาน live query เพื่อทำเช่นนั้น ให้ค้นหาแอปของคุณที่ เว็บไซต์ back4app https //www back4app com/ , และคลิกที่ \<font color="#2166ae">แดชบอร์ด\</font> > \<font color="#2166ae">สร้างคลาส\</font> , ตามที่แสดงที่นี่ ตอนนี้ เพื่อเปิดใช้งานฟีเจอร์ live query ให้เข้าสู่ระบบบัญชีของคุณที่ เว็บไซต์ back4app https //www back4app com/ , ค้นหาแอปของคุณและคลิกที่ \<font color="#2166ae">การตั้งค่าเซิร์ฟเวอร์\</font> , จากนั้นค้นหาบล็อก “server url and live query” และคลิกที่ \<font color="#2166ae">การตั้งค่า\</font> จากนั้น คุณจะมาถึงหน้าที่เหมือนกับด้านล่างนี้ ในหน้านี้คุณจะต้องตรวจสอบ \<font color="#2166ae">เปิดใช้งานซับโดเมน back4app ของคุณ\</font> ตัวเลือก \<font color="#2166ae">เปิดใช้งาน live query\</font> ตัวเลือกและทุกคลาสที่คุณต้องการให้เปิดใช้งาน live query ตามที่แสดงด้านล่าง จำเป็นต้องเปิดใช้งาน webhosting เพื่อใช้ live queries เพราะโดเมนของคุณจะทำงานเป็นเซิร์ฟเวอร์สด หมายเหตุ เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับ webhosting ดูที่ คู่มือ webhosting ของ back4app https //www back4app com/docs/platform/activating web hosting 2 ตั้งค่า livequery client github อย่างเป็นทางการของ parse server https //github com/parse community มีการใช้งาน live query client สำหรับ android https //github com/parse community/parselivequery android จำเป็นต้องใช้งาน live query client อย่างเป็นทางการซึ่งทำงานได้ดี เพื่อทำเช่นนี้ให้เพิ่มบรรทัดต่อไปนี้ในแอปของคุณ \<font color="#2166ae">app/build gradle\</font> ในส่วนของ dependencies และซิงค์โปรเจกต์ของคุณ app/build gradle 1 dependencies { 2 3 // don't forget to change the line below with the latest version of parse sdk for android 4 implementation "com github parse community parse sdk android\ parse 1 26 0" 5 implementation 'com github parse community\ parselivequery android 1 2 2' 6 7 } ในโปรเจกต์นี้เราจะสร้างคลาสชื่อ \<font color="#2166ae">message\</font> , ซึ่งจะเก็บข้อความของเรา 3 สมัครสมาชิกกับการค้นหาของคุณ เพื่อเริ่มใช้งาน live queries ให้สร้าง \<font color="#2166ae">livequeryclient\</font> ที่จะจัดการการเชื่อมต่อ websocket สำหรับคุณ เพื่อทำเช่นนี้คุณจะต้องให้ application id, javascript key และ url ของเซิร์ฟเวอร์ live query ที่คุณได้ตั้งค่าในขั้นตอนแรก 1 parse initialize(new parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build());1 parse initialize(parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build()) โค้ดสำหรับการเริ่มต้น \<font color="#2166ae">livequeryclient\</font> คือดังนี้ 1 parselivequeryclient parselivequeryclient = parselivequeryclient factory getclient();1 val parselivequeryclient = parselivequeryclient factory getclient() เรามีอะแดปเตอร์ recyclerview ชื่อ \<font color="#2166ae">messageadapter\</font> ฟังก์ชันของ messageadapter จะถูกเรียกเมื่อมีการเพิ่ม ลบ หรืออัปเดตวัตถุ ที่นี่คือฟังก์ชันของเรา \<font color="#2166ae">messageadapter\</font> 1 public void additem(parseobject t) { 2 this list add(t); 3 notifyiteminserted(list size() 1); 4 } 5 6 public void removeitem(parseobject object) { 7 for (int i = 0; i < list size(); i++) { 8 if (list get(i) getobjectid() equals(object getobjectid())){ 9 list remove(i); 10 notifyitemremoved(i); 11 notifyitemrangechanged(i, list size()); 12 return; 13 } 14 } 15 } 16 public void updateitem(parseobject object) { 17 for (int i = 0; i < list size(); i++) { 18 if (list get(i) getobjectid() equals(object getobjectid())){ 19 list set(i,object); 20 notifydatasetchanged(); 21 return; 22 } 23 } 24 }1 fun additem(t parseobject?) { 2 list!! add(t!!) 3 notifydatasetchanged() 4 } 5 6 fun removeitem(`object` parseobject) { 7 for (i in list!! indices) { 8 if (list!!\[i] objectid == `object` objectid) { 9 list!! removeat(i) 10 notifyitemremoved(i) 11 notifyitemrangechanged(i, list!! size) 12 return 13 } 14 } 15 } 16 17 fun updateitem(`object` parseobject) { 18 for (i in list!! indices) { 19 if (list!!\[i] objectid == `object` objectid) { 20 list!!\[i] = `object` 21 notifydatasetchanged() 22 return 23 } 24 } 25 } จากนั้น คุณควรสร้าง \<font color="#2166ae">parsequery\</font> สำหรับประเภทของวัตถุที่คุณต้องการสมัครสมาชิก การสมัครสมาชิกคือการปล่อยเหตุการณ์ ซึ่งจะเกิดเหตุการณ์เมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับวัตถุที่ตรงตามคำค้นของคุณ ในตัวอย่างนี้ คุณจะทำการค้นหาพื้นฐานและจะสมัครสมาชิกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับ \<font color="#2166ae">message\</font> วัตถุ ดูเพิ่มเติมเกี่ยวกับการค้นหาและการสมัครที่ เอกสารอย่างเป็นทางการเกี่ยวกับการค้นหาของ parse http //docs parseplatform org/android/guide/#queries 1 parsequery\<parseobject> parsequery = new parsequery<>("message"); 2 subscriptionhandling = parselivequeryclient subscribe(parsequery); 3 subscriptionhandling handlesubscribe(q > { 4 subscriptionhandling handleevent(subscriptionhandling event create, (query, object) > { 5 mainactivity this runonuithread(() > { 6 messagesadapter additem(object); 7 }); 8 }); 9 subscriptionhandling handleevent(subscriptionhandling event delete, (query, object) > { 10 mainactivity this runonuithread(() > { 11 messagesadapter removeitem(object); 12 }); 13 }); 14 subscriptionhandling handleevent(subscriptionhandling event update, (query, object) > { 15 mainactivity this runonuithread(() > { 16 messagesadapter updateitem(object); 17 }); 18 }); 19 });1 val parsequery = parsequery\<parseobject>("message") 2 subscriptionhandling = parselivequeryclient!! subscribe(parsequery) 3 subscriptionhandling!! handlesubscribe { subscriptionhandling!! handleevent(subscriptionhandling event create 4 ) { parsequery\<parseobject?>?, `object` parseobject? > 5 runonuithread { messagesadapter!! additem(`object`) } 6 } 7 subscriptionhandling!! handleevent(subscriptionhandling event delete 8 ) { parsequery\<parseobject?>?, `object` parseobject? > 9 runonuithread { messagesadapter!! removeitem(`object`!!) } 10 } 11 subscriptionhandling!! handleevent(subscriptionhandling event update 12 ) { parsequery\<parseobject?>?, `object` parseobject? > 13 runonuithread { messagesadapter!! updateitem(`object`!!) } 14 } 15 } หมายเหตุ เรากระตุ้นเหตุการณ์ทั้งหมดนี้ในแอป นอกจากนี้คุณยังสามารถกระตุ้นเหตุการณ์สร้าง, อัปเดต และลบจาก back4app (จากตารางหรือคอนโซล javascript) เสร็จสิ้น! ในจุดนี้ คุณมีความรู้ในการใช้ live queries เพื่อสร้างแอปพลิเคชันที่ตอบสนองแบบเรียลไทม์ในสภาพแวดล้อม android และยังรู้วิธีตั้งค่า live query โดยใช้ back4app ตอนนี้คุณสามารถเริ่มต้นโดยการนำไปใช้ในแอปของคุณเอง ตอนนี้คุณพร้อมที่จะสำรวจ ฟีเจอร์หลักของ parse server https //www back4app com/product/parse server และ ส่วนเสริมของ back4app https //www back4app com/product/addons