ใช้โปรเจกต์ Firebase ของคุณเอง
สรุปสั้น ๆวางไฟล์คีย์บัญชีบริการของ Firebase ลงในตัวเชื่อมต่อ Firebase ที่ แบ็กเอนด์ → คลาวด์ MonstarX จะตรวจสอบกับ Google แล้วแอปจะใช้ Firestore การลงชื่อเข้าใช้ของ Firebase, Cloud Storage การแจ้งเตือนพุช และ Realtime Database ได้ คุณยังตั้งให้ Firestore เป็นที่เก็บข้อมูลหลักของแอป และคัดลอกตารางที่มีอยู่ไปได้ด้วย
Firebase คือชุดบริการสำหรับแอปของ Google มีฐานข้อมูลแบบเอกสารชื่อ Firestore ระบบลงชื่อเข้าใช้ พื้นที่จัดเก็บไฟล์ การแจ้งเตือนพุช และอื่น ๆ ถ้าคุณมีโปรเจกต์ Firebase อยู่แล้ว เช่น โปรเจกต์ของแอปมือถือที่ใช้งานอยู่ ก็เชื่อมต่อกับแอป MonstarX แล้วใช้บริการเหล่านี้จากโปรเจกต์นั้นได้
ใช้ Firebase สำหรับ งานเดียว ก็ได้ (เช่น ส่งการแจ้งเตือนพุชถึงผู้ใช้แอปมือถือ) หรือตั้งให้ Firestore เป็นฐานข้อมูลของแอป เพื่อให้เว็บแอปกับแอปอื่น ๆ ของคุณใช้ข้อมูลชุดเดียวกันก็ได้
ก่อนเริ่มต้น
หัวข้อที่มีชื่อว่า “ก่อนเริ่มต้น”- โปรเจกต์ Firebase และสิทธิ์เข้าถึงการตั้งค่าในคอนโซล Firebase
- ถ้าจะให้คนลงชื่อเข้าใช้ด้วย Firebase Authentication ต้องเพิ่ม web app ไว้ในโปรเจกต์ Firebase นั้น
เชื่อมต่อ Firebase อย่างไร
หัวข้อที่มีชื่อว่า “เชื่อมต่อ Firebase อย่างไร”-
ในคอนโซล Firebase เปิด Project settings → Service accounts แล้วคลิก Generate new private key ไฟล์ JSON จะดาวน์โหลดลงเครื่อง
-
ใน MonstarX เปิดโปรเจกต์แล้วคลิก แบ็กเอนด์ ในแถบด้านบน จากนั้นคลิก คลาวด์
-
ที่ ตัวเชื่อมต่อ คลิก เชื่อมต่อ ข้าง Firebase
-
เปิดไฟล์ JSON ด้วยโปรแกรมแก้ไขข้อความ คัดลอก ทั้งหมด แล้ววางในช่อง ไฟล์คีย์บัญชีบริการ MonstarX จะอ่าน ID ของโปรเจกต์จากไฟล์นี้
-
กรอกช่องที่ไม่บังคับเฉพาะเมื่อจำเป็น
- คีย์ Web API อยู่ที่ Project settings → General → Your apps → Web app → apiKey จำเป็นเฉพาะเมื่อให้คนลงชื่อเข้าใช้ด้วย Firebase Authentication
- บัคเก็ตพื้นที่จัดเก็บ เฉพาะเมื่อไฟล์ไม่ได้อยู่ในบัคเก็ตเริ่มต้นของโปรเจกต์
- URL ของ Realtime Database เฉพาะสำหรับ Realtime Database ส่วน Firestore ไม่ต้องกรอกช่องนี้
-
คลิก เชื่อมต่อ Firebase MonstarX จะตรวจสอบคีย์กับ Google ก่อนบันทึก แล้วแสดงสิ่งที่พบข้าง เชื่อมต่อแล้ว คือ ID ของโปรเจกต์และคอลเลกชันใน Firestore หรือ “ยังไม่มีฐานข้อมูล Firestore”
ถ้าวางไฟล์ผิด เช่น วางไฟล์ตั้งค่า web app ขนาดเล็กแทนคีย์บัญชีบริการ MonstarX จะไม่รับและบอกว่าขาดช่องข้อมูลใดบ้าง
แอปทำอะไรกับ Firebase ได้บ้าง
หัวข้อที่มีชื่อว่า “แอปทำอะไรกับ Firebase ได้บ้าง”เมื่อเชื่อมต่อแล้ว ขอฟีเจอร์ด้วยภาษาธรรมดา เช่น “ส่งการแจ้งเตือนพุชถึงสมาชิกเมื่อคลาสถูกยกเลิก” MonstarX จะสร้างฟีเจอร์ด้วย Firebase
| บริการ Firebase | แอปทำอะไรได้ |
|---|---|
| Firestore | เพิ่ม อ่าน ค้นหา อัปเดต และลบเอกสาร และนับจำนวนเอกสาร |
| Authentication | ให้คนสมัครใช้งานและลงชื่อเข้าใช้ รีเซ็ตรหัสผ่าน และจัดการผู้ใช้ (ต้องใช้คีย์ Web API) |
| Cloud Storage | อัปโหลดไฟล์ รับลิงก์ดาวน์โหลด ดูรายการไฟล์ และลบไฟล์ |
| Cloud Messaging | ส่งการแจ้งเตือนพุชถึงอุปกรณ์หรือหัวข้อ (topic) |
| Realtime Database | อ่านและเขียนข้อมูล (ต้องใช้ URL ของ Realtime Database) |
ทุกอย่างทำงานบนเซิร์ฟเวอร์ของแอป ผู้เข้าชมจึงไม่เห็นคีย์ของคุณ
ใช้ Firestore เป็นฐานข้อมูลของแอปได้ไหม
หัวข้อที่มีชื่อว่า “ใช้ Firestore เป็นฐานข้อมูลของแอปได้ไหม”ได้ ทุกแอปเริ่มต้นด้วยฐานข้อมูลของ MonstarX แต่คุณตั้งให้ Firestore เป็นที่เก็บข้อมูลแทนได้
-
เชื่อมต่อ Firebase ก่อน (ดูด้านบน)
-
ใน แบ็กเอนด์คลาวด์ หาส่วน ที่แอปนี้เก็บข้อมูลไว้
-
เลือก Firestore (โปรเจกต์ Firebase ของคุณ) ถ้ายังไม่ได้เชื่อมต่อ Firebase ตัวเลือกนี้จะแสดง “เชื่อมต่อ Firebase ก่อน” และเลือกไม่ได้
-
ถ้าแอปมีข้อมูลอยู่แล้ว คลิก คัดลอกข้อมูลที่มีอยู่ เพื่อนำข้อมูลไปด้วย แล้วยืนยัน
หลังจากนั้น
- MonstarX จะสร้างแอปด้วย คอลเลกชันและเอกสาร แทนตาราง และดูคอลเลกชันจริงของคุณก่อนเขียนโค้ด MonstarX จะไม่คิดช่องข้อมูลที่ข้อมูลของคุณไม่มีขึ้นมาเอง
- แบ็กเอนด์ฐานข้อมูล จะแสดง คอลเลกชัน ใน Firestore และเอกสารในนั้น ในหน้านี้อ่านได้อย่างเดียว แอปเป็นผู้เขียนข้อมูล
- บัญชีผู้ใช้ยังอยู่กับ MonstarX คนยังลงชื่อเข้าใช้ได้เหมือนเดิม และ แบ็กเอนด์ผู้ใช้ ยังทำงานเหมือนเดิม นี่คือเหตุผลที่ MonstarX เก็บฐานข้อมูลของตัวเองไว้แทนที่จะลบทิ้ง
ถ้าต้องการเปลี่ยนกลับ ให้เลือก ฐานข้อมูล MonstarX ในที่เดียวกัน แอปจะกลับไปใช้ฐานข้อมูลเดิมของตัวเองตามที่เคยเป็น
คัดลอกข้อมูลที่มีอยู่ทำอะไรบ้าง
หัวข้อที่มีชื่อว่า “คัดลอกข้อมูลที่มีอยู่ทำอะไรบ้าง”- แต่ละตารางจะกลายเป็น คอลเลกชัน ชื่อเดียวกัน และแต่ละแถวเป็น เอกสาร ID ของแถวจะเป็น ID ของเอกสาร
- ถ้ารันอีกครั้ง จะ อัปเดต เอกสารเหล่านั้นแทนการสร้างซ้ำ
- ตารางการลงชื่อเข้าใช้ 4 ตารางยังอยู่ในฐานข้อมูลของ MonstarX ซึ่งเป็นที่เก็บบัญชีผู้ใช้
- ไม่ลบอะไรเลย ทั้งสองฝั่ง
- แอปขนาดใหญ่อาจคัดลอกเป็นส่วน ๆ ถ้ามีข้อความว่าระบบหยุดเพื่อให้คำขอใช้เวลาไม่นาน ให้รันอีกครั้ง แล้วการคัดลอกจะทำต่อจากจุดที่ค้างไว้
ข้อควรรู้
หัวข้อที่มีชื่อว่า “ข้อควรรู้”- Firestore หรือ Supabase อย่างใดอย่างหนึ่ง แอปเก็บข้อมูลไว้ในที่เดียว ถ้าจะย้ายจาก Supabase ไป Firestore ให้ย้ายข้อมูลกลับไปที่ฐานข้อมูลของ MonstarX ก่อน แต่ตัวเชื่อมต่อ Firebase ยังใช้คู่กับ Supabase ได้สำหรับพื้นที่จัดเก็บ การส่งข้อความ หรือการลงชื่อเข้าใช้
- แอปไม่มี Firebase SDK MonstarX เข้าถึง Firebase ผ่านตัวช่วยในตัวที่ทำงานเหมือนกันทั้งในพรีวิวและในแอปที่เผยแพร่
- การพุชไปยังอุปกรณ์มือถือ ต้องใช้โทเค็นอุปกรณ์จากแอปมือถือของคุณ MonstarX ส่งไปยังโทเค็นที่แอปได้รับมา
- การเผยแพร่ไปที่ Google Cloud Run เป็นตัวเชื่อมต่ออีกตัวหนึ่ง ดู เผยแพร่ไปยังโฮสต์อื่น
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”หาไฟล์คีย์บัญชีบริการได้ที่ไหน
ในคอนโซล Firebase ที่ Project settings → Service accounts → Generate new private key แล้ววางไฟล์ JSON ทั้งไฟล์ในช่อง ไฟล์คีย์บัญชีบริการ
ใช้ Firebase เฉพาะการแจ้งเตือนพุชได้ไหม
ได้ การเชื่อมต่อ Firebase ไม่ได้ย้ายข้อมูลของคุณ แอปจะใช้ฐานข้อมูลของ MonstarX ต่อไป เว้นแต่คุณจะเลือก Firestore ใน ที่แอปนี้เก็บข้อมูลไว้
ถ้าเปลี่ยนไปใช้ Firestore ผู้ใช้ต้องสร้างบัญชีใหม่ไหม
ไม่ต้อง บัญชีผู้ใช้ยังอยู่ในฐานข้อมูลของ MonstarX และการลงชื่อเข้าใช้ทำงานเหมือนเดิม มีเพียงข้อมูลของแอปเท่านั้นที่ย้ายไป Firestore
ขึ้นว่า “ยังไม่มีฐานข้อมูล Firestore” เป็นปัญหาไหม
เป็นปัญหาเฉพาะเมื่อคุณต้องการใช้ Firestore ตัวเชื่อมต่อยังเชื่อมต่อได้ เพราะแอปอาจต้องการแค่พื้นที่จัดเก็บ การลงชื่อเข้าใช้ หรือการพุช ถ้าจะใช้ Firestore ให้สร้างฐานข้อมูล Firestore ในคอนโซล Firebase
การคัดลอกข้อมูลจะลบอะไรไหม
ไม่ลบ คัดลอกข้อมูลที่มีอยู่ แค่เพิ่มหรืออัปเดตเอกสารใน Firestore ส่วนฐานข้อมูลของ MonstarX ยังอยู่เหมือนเดิม