จะสร้าง API ด้วย Firebase ให้สำเร็จได้อย่างไร

เผยแพร่แล้ว: 2021-09-07

Firebase เป็นแพลตฟอร์มการพัฒนาแอปพลิเคชันที่เปิดตัวในปี 2555 และได้มาโดย Google ในอีกสองปีต่อมา ในช่วงเริ่มต้น Firebase ถูกมองว่าเป็นฐานข้อมูลสำหรับแอปพลิเคชันแบบเรียลไทม์ แต่ Google เล็งเห็นถึงศักยภาพและตัดสินใจเพิ่มบริการเพิ่มเติมเข้าไป

ปัจจุบัน Firebase เป็นระบบ BaaS (แบ็กเอนด์เป็นบริการ) ที่มี 18 บริการเพื่ออำนวยความสะดวกในการสร้างเว็บและแอปพลิเคชันมือถือ บริษัทที่ใช้บริการ BaaS ของ Firebase ได้แก่ Accenture, Alibaba Travels, Stack, Twitch และ Instacart พร้อมด้วยบริษัทอื่นๆ อีกกว่า 2,300 ราย

ประโยชน์ของการใช้ Firebase

บริการแรกที่ Firebase นำเสนอคือฐานข้อมูลแบบเรียลไทม์ และยังคงเป็นหนึ่งในบริการที่ใหญ่ที่สุด ฐานข้อมูลเรียลไทม์ของ Firebase โฮสต์อยู่ในคลาวด์ จัดเก็บข้อมูลในรูปแบบ JSON และซิงโครไนซ์แบบเรียลไทม์กับไคลเอนต์ทุกเครื่องที่เชื่อมต่อ ไม่ว่าจะใช้ iOS SDK, Android SDK หรือ JavaScript SDK แอปพลิเคชันทั้งหมดที่เชื่อมต่อกับฐานข้อมูล Firebase Realtime จะแชร์ฐานข้อมูลเพียงอินสแตนซ์เดียว โดยจะอัปเดตข้อมูลล่าสุดอยู่เสมอ

Cloud Firestore เป็นอีกหนึ่งบริการ Firebase ที่น่าสนใจ เป็นฐานข้อมูลเอกสาร NoSQL ที่ออกแบบมาเพื่ออำนวยความสะดวกในการจัดเก็บข้อมูล การซิงโครไนซ์ และการสืบค้นข้อมูลสำหรับแอปมือถือและเว็บในระดับโลก การสร้างลำดับชั้นเพื่อจัดเก็บข้อมูลที่เกี่ยวข้องและการสืบค้นข้อมูลเชิงแสดงออกเพื่อดึงข้อมูลช่วยให้ Cloud Firestore สามารถรับรู้ได้อย่างเต็มที่ ในทางกลับกัน แบบสอบถามจะปรับขนาดตามขนาดของผลลัพธ์มากกว่าขนาดของชุดข้อมูล ซึ่งช่วยให้แอปพลิเคชันสามารถปรับขนาดได้ตั้งแต่เริ่มต้นโดยไม่ต้องรอจนกว่าจะถึงเวลาที่ต้องการความจุเกิน

นอกเหนือจากบริการฐานข้อมูลดังกล่าวแล้ว Firebase ยังให้บริการโฮสติ้ง พื้นที่จัดเก็บไฟล์ ฟังก์ชัน (สไตล์ AWS Lambda) และอีกมากมาย

การสร้าง API

API เป็นวิธีให้บริการสำหรับแอปของคุณเองหรือของบุคคลที่สาม Firebase ช่วยให้คุณให้บริการที่กำหนดเองซึ่งในทางกลับกันก็ใช้บริการของ Firebase เองโดยไม่ต้องยุ่งยากกับการตั้งค่าแบ็กเอนด์สำหรับบริการเหล่านั้น ตัวอย่างเช่น คุณสามารถเสนอการเข้าถึงฐานข้อมูลแบบเรียลไทม์ของ Firebase สำหรับแอปพลิเคชันบุคคลที่สาม เพื่อสืบค้นข้อมูลที่รวบรวมโดยเซ็นเซอร์อุตสาหกรรม

ขั้นตอนแรกในการสร้าง API ใน Firebase คือการเข้าถึงคอนโซล Firebase และเพิ่มโปรเจ็กต์โดยคลิก "เพิ่มโปรเจ็กต์" และตั้งชื่อโปรเจ็กต์ใหม่ Google จะให้ตัวเลือกแก่คุณในการเปิดใช้งาน Google Analytics สำหรับโครงการใหม่ของคุณ ขอแนะนำให้ยอมรับคำแนะนำนี้ เนื่องจากคุณจะได้รับประโยชน์ เช่น การทดสอบ A/B และรายงานทางสถิติที่หลากหลายจาก API ของคุณ

เมื่อคุณสร้างโครงการแล้ว คุณจะสามารถเลือกบริการ Firebase ที่ API ของคุณจะใช้ได้ เพื่อแสดงงานนี้ เราจะดูวิธีใช้บริการฐานข้อมูล Firebase Realtime

การตั้งค่าฐานข้อมูลแบบเรียลไทม์ใน Firebase

ในแถบนำทางทางด้านซ้าย ในส่วน Develop ให้คลิกที่ Realtime Database ปุ่ม "สร้างฐานข้อมูล" จะปรากฏขึ้นทางด้านขวา คลิกเพื่อสร้างฐานข้อมูลแรกของคุณใน Firebase

ถัดไป คุณจะต้องเลือกระหว่างตัวเลือกที่ตั้งทางภูมิศาสตร์ต่างๆ สำหรับฐานข้อมูลใหม่ของคุณ เลือกอันที่ใกล้เคียงที่สุดกับผู้ใช้ของคุณ นี่เป็นส่วนสำคัญในการลดเวลาแฝงของ API ของคุณให้เหลือน้อยที่สุด โดยเฉพาะอย่างยิ่งในแอปแบบเรียลไทม์

ขั้นตอนต่อไปคือการกำหนดค่ากฎความปลอดภัยพื้นฐานสำหรับฐานข้อมูลของคุณ คุณสามารถเลือกโหมดล็อกแล้วกำหนดสิทธิ์การเข้าถึงได้ตามต้องการ หรือเลือกใช้โหมดทดสอบ ซึ่งเปิดใช้การอ่านและเขียนทั้งหมด

คุณสามารถเริ่มต้นด้วยตัวเลือกโหมดทดสอบเพื่อไม่ให้การตั้งค่าความปลอดภัยซับซ้อนในตอนเริ่มต้น คุณสามารถสร้างกฎในภายหลังได้เสมอเพื่อตั้งค่าคอนฟิกการรักษาความปลอดภัยที่มีความละเอียดมากขึ้น

ทันทีที่คุณกำหนดค่าฐานข้อมูลของคุณเสร็จสิ้น API ที่เกี่ยวข้องจะเปิดใช้งานในส่วน API และบริการของคอนโซลส่วนบุคคลของคุณใน Google Cloud Platform

การเขียนโปรแกรม Firebase API

ณ จุดนี้ คุณมีองค์ประกอบพื้นฐานของโครงการที่กำหนดค่าไว้ในคอนโซล Firebase แล้ว ขั้นตอนต่อไปคือการเขียนโค้ด API ของคุณ ในการทำเช่นนั้น คุณจะต้องเริ่มต้นการโฮสต์ Firebase และทำงานบนเครื่องคอมพิวเตอร์ของคุณ คุณสามารถติดตั้ง firebase-tools โดยใช้ npm:

 npm install -g firebase-tools

จากนั้น คุณสามารถเข้าสู่ระบบ firebase และเริ่มต้นโครงการของคุณด้วยคำสั่งต่อไปนี้:

 firebase login firebase init

หน้าจอต้อนรับจะแสดงขึ้นโดยที่ Firebase จะแจ้งให้คุณทราบถึงโฟลเดอร์ที่จะเริ่มต้นโปรเจ็กต์ของคุณ และเมนูตัวเลือกจะปรากฏขึ้น

ในเมนูนั้น ให้เลือก Functions and Hosting (ตัวเลือก Hosting จะช่วยให้คุณมี URL ที่กำหนดเองสำหรับ API ที่คุณจะพัฒนา) จากนั้นเลือกจากรายการแอป Firebase ที่คุณสร้างไว้ก่อนหน้านี้ หลังจากนั้น คุณต้องเลือกภาษาที่จะใช้ ในการพัฒนา Web API คุณสามารถเลือกใช้ JavaScript

หากคุณจะใช้การพึ่งพาแพ็คเกจ ให้ติดตั้งด้วย npm ภายในโฟลเดอร์ฟังก์ชัน จากนั้นคุณสามารถเริ่มเขียนโค้ดสำหรับฟังก์ชันของคุณได้ อย่าลืมรวมแพ็คเกจ firebase-functions และ firebase-admin พร้อมกับแพ็คเกจอื่นๆ ที่คุณต้องการ:

 import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';

ในการใช้ฐานข้อมูลแบบเรียลไทม์ คุณต้องระบุ URL เมื่อเริ่มต้น JavaScript SDK URL จะอยู่ในส่วน Realtime Database ของคอนโซล Firebase คุณสามารถรับรู้ได้จากรูปแบบ:

 https://<database-name>.<region>.firebasedatabase.app

คุณสามารถใช้ข้อมูลโค้ดต่อไปนี้เพื่อเริ่มต้น SDK โดยแทนที่ข้อมูลที่สอดคล้องกับออบเจ็กต์การกำหนดค่าของโปรเจ็กต์ของคุณ:

 var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();

เมื่อคุณเขียนโค้ดของฟังก์ชัน API แล้ว ก็ถึงเวลาปรับใช้ แต่ก่อนจะทำเช่นนั้น คุณจะต้องทำการเปลี่ยนแปลงบางอย่างใน firebase.json โดยเพิ่มบรรทัดต่อไปนี้ แก้ไขตามการกำหนดค่าโปรเจ็กต์ของคุณ:

 "rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]

ขั้นตอนต่อไปคือการปรับใช้ ครั้งแรกที่คุณต้องทำการปรับใช้ให้สมบูรณ์ โดยดำเนินการคำสั่ง:

 firebase deploy

ในการปรับใช้ในภายหลัง คุณจะสามารถปรับใช้เฉพาะฟังก์ชันได้ โดยใช้พารามิเตอร์ –only functions

หลังจากดำเนินการคำสั่งปรับใช้ Firebase CLI จะแสดง URL ของจุดปลาย HTTP ของฟังก์ชันของคุณในเทอร์มินัล ซึ่งคุณสามารถใช้เพื่อเรียกใช้ API ของคุณจากเว็บแอปพลิเคชัน URL ประกอบด้วยรหัสโปรเจ็กต์และภูมิภาคสำหรับฟังก์ชัน HTTP ตัวอย่างเช่น สามารถใช้ URL ต่อไปนี้เพื่อเรียกใช้ฟังก์ชันการสืบค้นข้อมูลโดยส่ง itemid=1 เป็นพารามิเตอร์:

 https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

ในการใช้งานฟังก์ชัน ให้เปิด URL ด้วยพารามิเตอร์ที่เกี่ยวข้องในเบราว์เซอร์

โปรดทราบว่าการปรับใช้กับสภาพแวดล้อมการใช้งานจริงต้องมีการสมัครใช้งานแผน Firebase Blaze ซึ่งจ่ายตามการใช้งานจริง เนื่องจากคุณสามารถอ่านได้ในหน้าราคาของ Firebase เป็นบริการหลังการเรียกเก็บเงิน ซึ่งหมายความว่าคุณจะถูกเรียกเก็บเงินสำหรับการใช้งานของคุณทุกสิ้นเดือน

หากคุณไม่ได้สมัครใช้งาน Blaze คำสั่งปรับใช้จะไม่แสดง URL API ของคุณ แต่คุณจะเห็นข้อความแจ้งว่าคุณต้องสมัครใช้งานแผน Blaze หากคุณต้องการปรับใช้กับสภาพแวดล้อมรันไทม์ ในกรณีนี้ คุณยังคงสามารถใช้ Firebase Local Emulation Suite เพื่อสร้างและทดสอบแอปพลิเคชันบนเครื่องในพื้นที่ของคุณ แทนที่จะปรับใช้กับสภาพแวดล้อมการใช้งานจริงของ Firebase การทดสอบในพื้นที่มีประโยชน์ในการหลีกเลี่ยงค่าใช้จ่ายที่ไม่จำเป็นในระหว่างการพัฒนาแอปพลิเคชัน เนื่องจากการทดสอบแต่ละครั้งอาจสร้างค่าใช้จ่ายในบัญชีของคุณ

การทดสอบและการสร้างต้นแบบในพื้นที่

เครื่องมือ Local Emulator Suite มีส่วนติดต่อผู้ใช้แบบบูรณาการที่ทำให้การสร้างต้นแบบง่ายและมีประโยชน์สำหรับการทดสอบแอปของคุณบนเครื่องในพื้นที่ของคุณ

ด้วยอินเทอร์เฟซผู้ใช้ Emulator Suite คุณสามารถทดสอบการออกแบบฐานข้อมูล เวิร์กโฟลว์ Cloud Functions วิเคราะห์ประสิทธิภาพของบริการแบ็กเอนด์ และประเมินการเปลี่ยนแปลงในกฎความปลอดภัย รวมถึงงานอื่นๆ โดยพื้นฐานแล้วมันเป็นแซนด์บ็อกซ์ที่ปลอดภัยเพื่อทดสอบการทำงานของ API ของคุณก่อนที่จะส่งไปยังสภาพแวดล้อมที่ใช้งานจริง

หากต้องการจำลองฟังก์ชันหรือทดสอบแอปพลิเคชันในเครื่อง ให้เรียกใช้โปรแกรมจำลอง firebase:start คุณต้องติดตั้ง Java จึงจะสามารถใช้ Firestore Emulator ได้ หากคุณไม่มี คุณสามารถติดตั้งได้จากที่นี่

เมื่อคุณเรียกใช้ Firestore Emulator คำสั่งจะส่งคืน URL ที่จะช่วยให้คุณสามารถเปิดอินเทอร์เฟซผู้ใช้ Emulator Suite ในเบราว์เซอร์ของคุณได้ โดยค่าเริ่มต้น URL นี้จะเป็น localhost:4000 แต่อาจแตกต่างกันไปในแต่ละเครื่อง

คุณจะได้รับ URL แบบเต็มสำหรับฟังก์ชัน HTTP ของคุณ URL นี้จะมีลักษณะคล้ายกับ:

 http://localhost:5001/apiproject-8753c/us-central1/itemQuery

จะมีเพียงชื่อโปรเจ็กต์ของคุณ ชื่อฟังก์ชันของคุณ และมันอาจมีหมายเลขพอร์ตที่แตกต่างกันบนเครื่องของคุณ

ในการทดสอบฟังก์ชัน ให้คัดลอก URL ที่อีมูเลเตอร์ส่งกลับมา เพิ่มพารามิเตอร์ที่จำเป็น (เช่น ?itemid=1) และป้อนลงในแท็บใหม่ของเบราว์เซอร์ของคุณ ผลลัพธ์ของการดำเนินการ API จะปรากฏใน Emulator Suite UI

ในแท็บ Logs คุณจะเห็นบันทึกใหม่ที่ระบุว่าฟังก์ชัน itemQuery() ถูกดำเนินการ หากฟังก์ชันของคุณสร้างข้อมูลใหม่ในฐานข้อมูล Firestore คุณจะเห็นข้อมูลดังกล่าวในแท็บ Firestore

ได้รับการเปิดเผยมากขึ้นสำหรับ API . ของคุณ

หากคุณต้องการให้ API ที่คุณพัฒนากลายเป็นที่นิยม Firebase สามารถช่วยคุณได้เช่นกัน ไม่เพียงเพราะช่วยให้คุณสร้างแอปพลิเคชันได้เร็วยิ่งขึ้น ทำงานมากมายในการติดตั้งและใช้งานบริการแบ็กเอนด์ แต่ยังช่วยให้คุณกำหนดตำแหน่งผลิตภัณฑ์ด้วย เป็นไปได้อย่างไร? เพียงเพราะแอปที่เกี่ยวข้องกับ Firebase อยู่ในอันดับการค้นหาได้ดีกว่าแอปพลิเคชันอื่นๆ

นอกจากนี้ ให้คำนึงถึง API การจัดทำดัชนีแอปของ Firebase ด้วย เครื่องมือนี้ช่วยปรับปรุงการจัดอันดับการค้นหาของลิงก์แอพและช่วยให้ผู้ใช้ค้นหาเนื้อหาที่ต้องการ นอกจากนี้ยังวางปุ่มติดตั้งไว้หลังปุ่มหน้าแรกของแอปเพื่อให้ผู้ใช้ที่สนใจกลายเป็นผู้ใช้แอปของคุณเพียงแค่คลิกเดียว

โดยสรุป Firebase ไม่เพียงแต่นำเสนอบริการแบ็กเอนด์ที่เร่งการพัฒนา API ของคุณอย่างรวดเร็ว แต่เมื่อมันพร้อมใช้งานและเปิดเผยต่อโลกแล้ว มันยังช่วยให้คุณโปรโมต – และทำเงินจากมันได้อีกด้วย