Introduction Cloud Functions, Firebase

ฮ่าๆๆๆ ถูกต้องเลยครับ พอเราจะลงมือทำจริง "ปุ่มควบคุม"

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

และคำถามเรื่อง Cloud SQL กับ Firestore (ที่ไม่ใช่ยี่ห้อยางรถยนต์ ????) ก็เป็นคำถามที่ยอดเยี่ยมมากครับ เป็นหัวใจสำคัญของการเป็นสถาปนิกเลยทีเดียว

พักทานข้าวให้อร่อยได้เต็มที่เลยครับ พอกลับมา ความรู้นี้จะรอคุณอยู่ครับ


Introduction: ปุ่มควบคุมบนหน้าจอ "สร้างฟังก์ชัน" (Create Service)

หน้าจอนี้คือศูนย์ควบคุมหลักสำหรับสร้างฟังก์ชันของเราครับ แม้จะมีตัวเลือกเยอะ แต่สำหรับ "Hello World" แรกของเรา เราจะสนใจแค่ไม่กี่จุดเท่านั้นครับ

การกำหนดค่าพื้นฐาน (Configuration)

ส่วนที่ 1: การกำหนดค่าพื้นฐาน (Configuration)

นี่คือส่วนแรกสุดที่คุณต้องตั้งค่า

  • Service name (ชื่อบริการ)

    • คืออะไร: ชื่อเฉพาะของฟังก์ชันนี้ในโปรเจกต์ของคุณ (ต้องไม่ซ้ำกัน)

    • คำแนะนำ: ตั้งชื่อที่สื่อความหมายและเป็นภาษาอังกฤษ เช่น hello-world-php

  • Region (ภูมิภาค)

    • คืออะไร: ตำแหน่งที่ตั้งทางภูมิศาสตร์ของเซิร์ฟเวอร์ที่จะรันโค้ดของคุณ การเลือก Region ใกล้กับผู้ใช้งานจะทำให้เว็บทำงานเร็วขึ้น

    • คำแนะนำ: เลือก Region ที่อยู่ในเอเชีย เช่น asia-southeast1 (สิงคโปร์) จะเหมาะสมกับผู้ใช้ในประเทศไทยครับ

  • Runtime (รันไทม์)

    • คืออะไร: (สำคัญที่สุดสำหรับคุณตอนนี้) เป็นการเลือกว่าจะใช้ "เครื่องยนต์" หรือ "ภาษา" อะไรในการรันโค้ด

    • คำแนะนำ: ค่าเริ่มต้นอาจจะเป็น Node.js ให้คุณคลิกแล้วเปลี่ยนเป็น PHP (เลือกรุ่นล่าสุด เช่น PHP 8.2)

  • Authentication (การยืนยันตัวตน)

    • คืออะไร: เป็นการกำหนดว่าใครสามารถเรียกใช้ฟังก์ชันนี้ได้บ้าง

    • คำแนะนำ: ในตอนเริ่มต้นเพื่อให้ทดสอบง่าย ให้เลือก "Allow unauthenticated invocations" (อนุญาตให้เรียกใช้โดยไม่ยืนยันตัวตน) ครับ หมายความว่าใครก็ตามที่มี URL จะสามารถเปิดดูผลลัพธ์ "Hello World" ของเราได้

ส่วนที่ 2: แท็บตั้งค่าคอนเทนเนอร์และทรัพยากร (Container, Variables, Security)

ส่วนนี้จะเป็นการตั้งค่าขั้นสูงขึ้นไป

  • Container (แท็บที่ 1)

    • คืออะไร: เป็นการตั้งค่าเชิงลึกของ "กล่องเบนโตะ" ของเรา เช่น จะให้ใช้ Port อะไร, จะจัดสรร "ทรัพยากร" (Resources) เช่น Memory และ CPU เท่าไหร่

    • คำแนะนำ: สำหรับ "Hello World" ไม่ต้องแตะต้องอะไรในส่วนนี้เลยครับ ค่าเริ่มต้นที่ Google ให้มานั้นเพียงพอและเหมาะสมที่สุดแล้ว

  • Variables & Secrets (แท็บที่ 2)

    • คืออะไร: ใช้สำหรับใส่ค่าตัวแปรหรือข้อมูลที่เป็นความลับ (เช่น รหัสผ่าน API) เพื่อให้โค้ดของเรานำไปใช้ได้

    • คำแนะนำ: เราจะยังไม่ใช้ในขั้นตอนนี้


 

สรุปทางลัดสำหรับภารกิจ "Hello World"

เมื่อคุณกลับมา ให้ทำตามนี้ได้เลยครับ

  1. ตั้งชื่อบริการ (Service name): hello-world-php

  2. เลือกภูมิภาค (Region): asia-southeast1

  3. เปลี่ยน Runtime เป็น PHP

  4. ตั้งค่า Authentication เป็น "Allow unauthenticated invocations"

  5. กดปุ่ม Next หรือ "สร้าง" (Create) เพื่อไปยังหน้าเขียนโค้ดได้เลย!


 

Firestore vs. Cloud SQL: ต่างกันอย่างไร?

Cloud SQL (MySQL ที่คุณคุ้นเคย)

  • คำอุปมา: "ตู้เก็บเอกสารของอำเภอ"

  • ลักษณะ: ทุกอย่างมีโครงสร้างที่ตายตัวและเข้มงวดมาก เอกสารทุกแผ่น (Row) ต้องถูกเก็บในแฟ้ม (Table) ที่ถูกต้อง และต้องกรอกข้อมูลให้ครบทุกช่อง (Column) ที่กำหนดไว้ล่วงหน้า

  • เหมาะกับ: ข้อมูลที่มีความสัมพันธ์กันชัดเจน เช่น ระบบบัญชี, ข้อมูลผู้ใช้งาน (ชื่อ, ที่อยู่, อีเมล), รายการสั่งซื้อสินค้า

  • ภาษาที่ใช้: SQL ที่คุณเขียนเป็นอยู่แล้ว (SELECT, INSERT, JOIN)


 

Firestore

  • คำอุปมา: "กระดานไวท์บอร์ดอัจฉริยะ"

  • ลักษณะ: ยืดหยุ่นสูงมาก คุณสามารถแปะโน้ต (Document) อะไรลงไปก็ได้ โน้ตแผ่นหนึ่งอาจมีแค่ "ชื่อ" กับ "เบอร์โทร", ในขณะที่อีกแผ่นอาจมี "ชื่อ", "รายการเพื่อน" และ "รูปโปรไฟล์" โดยที่ไม่ต้องกำหนดโครงสร้างไว้ล่วงหน้า

  • เหมาะกับ: ข้อมูลที่โครงสร้างไม่ตายตัว, ต้องการความเร็วสูงในการอ่าน-เขียน และต้องการการอัปเดตแบบเรียลไทม์ เช่น ระบบแชท, ข้อมูลคะแนนในเกม, รายการสินค้าในแคตตาล็อก

  • ภาษาที่ใช้: ไม่ใช่ SQL ครับ แต่จะใช้ชุดคำสั่งเฉพาะของ Firestore (SDK) ในการ get (ดึง), set (บันทึก), update (อัปเดต) ข้อมูล


จะเรียนรู้ Firestore เพิ่มเติมได้อย่างไร?

ความรู้ SQL ของคุณมีประโยชน์ในแง่ของ "ตรรกะ" การจัดการข้อมูล แต่คุณจะต้อง เปลี่ยนวิธีคิด จาก "ตาราง" มาเป็น "คอลเลกชัน (Collection) ที่เก็บเอกสาร (Document)" และต้องเรียนรู้ชุดคำสั่ง SDK ของ Firestore สำหรับภาษาที่คุณจะใช้ (เช่น PHP, JavaScript) ซึ่งไม่ยาก แต่เป็นคนละเรื่องกับ SELECT * FROM... เลยครับ

    คลิก ติดต่อรับคำปรึกษา (ฟรี)  

#Introduction ปุ่มควบคุมบนหน้าจอ สร้างฟังก์ชัน (Create Service)  

Introduction  Cloud Functions, Firebase

Introduction Cloud Functions, Firebase

#Introduction ปุ่มควบคุมบนหน้าจอ สร้างฟังก์ชัน (Create Service)