เอกสารนี้ประกอบด้วยรายการตรวจสอบแนวทางปฏิบัติแนะนำและข้อควรพิจารณาก่อนเปิดตัวแอป Firebase ในเวอร์ชันที่ใช้งานจริง
แนวทางปฏิบัติแนะนำทั่วไปสำหรับการเผยแพร่
ตรวจสอบว่าคุณได้ทดสอบการเปลี่ยนแปลงทั้งหมดในFirebase Local Emulator Suite (สำหรับผลิตภัณฑ์ที่รองรับ) ก่อนที่จะนำไปใช้งานจริง การทดสอบอย่างละเอียด จะช่วยป้องกันข้อผิดพลาดที่อาจทำให้เกิดค่าใช้จ่ายสูง
เริ่มบังคับใช้ Firebase App Check กับทุกบริการที่รองรับ App Check ช่วยให้มั่นใจได้ว่ามีเพียงแอปจริงของคุณเท่านั้นที่เข้าถึงบริการและทรัพยากรแบ็กเอนด์ได้
ใช้Firebase Remote Configการเปิดตัวเพื่อเผยแพร่ฟีเจอร์และการอัปเดตใหม่ๆ ในแอปอย่างปลอดภัยและค่อยเป็นค่อยไป
หากยังไม่ได้ตั้งค่า Firebase Crashlytics เราขอแนะนำให้ตั้งค่า ซึ่งเป็นเครื่องมือรายงานข้อขัดข้องแบบเรียลไทม์ที่มีขนาดเล็กและช่วยให้คุณติดตาม จัดลำดับความสำคัญ และแก้ไขปัญหาด้านความเสถียรที่ทำให้คุณภาพของแอปลดลงได้
ทราบขีดจำกัดของแพ็กเกจราคาและตั้งค่าการแจ้งเตือนงบประมาณ
ตรวจสอบว่าคุณไม่ได้ใช้งานเกินขีดจำกัดการใช้งานและโควต้าหลังจากเข้าสู่เวอร์ชันที่ใช้งานจริง โดยเฉพาะอย่างยิ่งหากคุณใช้แพ็กเกจ Spark แบบไม่มีค่าใช้จ่าย ลองอัปเกรดเป็นแพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้
ตั้งค่าการแจ้งเตือนงบประมาณสำหรับโปรเจ็กต์
โปรดทราบว่าการแจ้งเตือนงบประมาณไม่ใช่ขีดจำกัดงบประมาณ การแจ้งเตือนจะส่งการสื่อสารให้คุณเมื่อใกล้ถึงหรือเกินเกณฑ์ที่กำหนดไว้ เพื่อให้คุณดำเนินการในแอปหรือโปรเจ็กต์ได้
พิจารณาตั้งค่าการแจ้งเตือนและการดำเนินการขั้นสูง เช่น ฟังก์ชันที่จะปิดใช้การเรียกเก็บเงินเพื่อตอบสนองต่อการแจ้งเตือน
หากคุณใช้ Firebase AI Logic, Firebase App Hosting, Cloud Functions for Firebase และ Firebase Extensions เราขอแนะนำอย่างยิ่งให้คุณตั้งค่าวงเงินใช้จ่ายด้วย ซึ่งจะหยุดบริการที่เกี่ยวข้องชั่วคราวหากโปรเจ็กต์ของคุณใช้งบประมาณถึงจำนวนที่กำหนดไว้สำหรับบริการนั้น
ตรวจสอบการใช้งานในแดชบอร์ดเฉพาะผลิตภัณฑ์หรือในแดชบอร์ดการใช้งานและการเรียกเก็บเงินส่วนกลางในคอนโซล Firebase
ตรวจสอบว่าโปรเจ็กต์และแอป Firebase เป็นไปตามแนวทางปฏิบัติแนะนำ
ไม่ว่าคุณจะเป็นนักพัฒนาแอปรายเดียวหรือทีมขนาดใหญ่ระดับองค์กร สิ่งสำคัญคือต้องตรวจสอบว่าโปรเจ็กต์ Firebase แอป และทรัพยากรได้รับการปกป้อง รักษาความปลอดภัย และสามารถพัฒนาไปพร้อมกับการเปลี่ยนแปลงในทีม
โปรดทราบว่าโปรเจ็กต์ Firebase เป็นเพียงโปรเจ็กต์ Google Cloud ที่เปิดใช้บริการและการกำหนดค่า Firebase ซึ่งหมายความว่าแนวทางปฏิบัติแนะนำหลายๆ ข้อที่ Google Cloud แนะนำก็ใช้กับ Firebase ได้เช่นกัน
ใช้โปรเจ็กต์ Firebase ที่แตกต่างกันสำหรับการพัฒนา การทดสอบ และการใช้งานจริง
พยายามจำกัดการเข้าถึงโปรเจ็กต์ที่เชื่อมโยงกับแอปเวอร์ชันที่ใช้งานจริงโดยไม่คาดคิด ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเวิร์กโฟลว์การพัฒนา
ปกป้องโปรเจ็กต์สำคัญ โดยเฉพาะโปรเจ็กต์ที่เชื่อมโยงกับแอปเวอร์ชันที่ใช้งานจริง
ใช้การจำนองโปรเจ็กต์เพื่อป้องกันการลบโปรเจ็กต์โดยไม่ตั้งใจ
ใช้แท็ก "Prod" ภายในคอนโซล Firebase เพื่อให้ระบุสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ได้ง่ายขึ้น
หากยังไม่ได้ดำเนินการ ให้พิจารณาสร้างองค์กร Google Cloud แล้วเพิ่มโปรเจ็กต์ Firebase ลงในองค์กรนั้น
เพิ่มเจ้าของมากกว่า 1 รายลงในโปรเจ็กต์ Firebase โดยเฉพาะอย่างยิ่งหากโปรเจ็กต์ไม่ได้อยู่ในองค์กร Google Cloud ดูข้อมูลเพิ่มเติมเกี่ยวกับเวลาและวิธีมอบหมายเจ้าของสำหรับโปรเจ็กต์ Firebase
เพิ่มสมาชิกโปรเจ็กต์ (หรือที่เรียกว่า "หลักการ") เป็น Google Groups แทนที่จะเพิ่มทีละคน
การใช้กลุ่มช่วยให้มอบหมายบทบาทให้กับสมาชิกในทีมพร้อมกันได้ง่ายขึ้น รวมถึงจัดการผู้ที่มีสิทธิ์เข้าถึงโปรเจ็กต์ Firebase โดยเฉพาะอย่างยิ่งหากสมาชิกในทีมมีการหมุนเวียนหรือลาออก
ให้สิทธิ์เข้าถึงโปรเจ็กต์ Firebase และทรัพยากรในระดับที่เหมาะสมแก่สมาชิกโปรเจ็กต์แต่ละคน (หรือที่เรียกว่า "หลักการ") ดูข้อมูลเพิ่มเติมได้ที่จัดการสิทธิ์เข้าถึงโปรเจ็กต์ด้วย Firebase IAM
ตรวจสอบว่าสมาชิกโปรเจ็กต์ที่เกี่ยวข้องแต่ละคน (หรือที่เรียกว่า "ผู้ใช้") ตั้งค่ากำหนดเพื่อรับการแจ้งเตือนเกี่ยวกับผลิตภัณฑ์หรือสถานะโปรเจ็กต์ที่เฉพาะเจาะจง (เช่น การเปลี่ยนแปลงแพ็กเกจการเรียกเก็บเงินหรือขีดจำกัดโควต้า) ดูข้อมูลเพิ่มเติมในรับการแจ้งเตือน Firebase
นอกจากนี้ คุณยังเลือกปรับแต่ง "รายชื่อติดต่อที่สำคัญ" ของโปรเจ็กต์ได้หากต้องการให้สมาชิกโปรเจ็กต์ที่เฉพาะเจาะจงหรือสมาชิกเพิ่มเติมได้รับแจ้งเตือน ซึ่งจะเป็นประโยชน์อย่างยิ่งในการตรวจสอบว่ามีบุคคลอื่นนอกเหนือจากเจ้าของโปรเจ็กต์ที่ได้รับการแจ้งเตือนเกี่ยวกับการเรียกเก็บเงิน กฎหมาย และการเปลี่ยนแปลงผลิตภัณฑ์
จำกัดคีย์ Firebase API ให้ใช้ได้เฉพาะกับ API ที่ต้องอยู่ในรายการที่อนุญาตของคีย์ API นอกจากนี้ โปรดดูข้อมูลเกี่ยวกับคีย์ API ในรายการตรวจสอบความปลอดภัยของ Firebase
เตรียมบริการที่เฉพาะเจาะจงที่ใช้ในแอป
ผลิตภัณฑ์และบริการแต่ละรายการที่ใช้ในแอปอาจมีข้อควรพิจารณาเฉพาะเมื่อใช้ในเวอร์ชันที่ใช้งานจริง
Firebase AI Logic
Google Analytics
กำหนดเงื่อนไขกลุ่มเป้าหมายสำหรับ Google Analytics เพื่อเริ่มรวบรวมข้อมูลวิเคราะห์ตั้งแต่เปิดตัวแอป
พิจารณาเปิดใช้การส่งออกข้อมูล Google Analytics ไปยัง BigQuery เพื่อให้คุณวิเคราะห์ข้อมูลด้วย BigQuery SQL หรือส่งออกข้อมูลเพื่อใช้กับเครื่องมือของคุณเองได้
จำกัดพร็อพเพอร์ตี้ผู้ใช้ให้มีเฉพาะข้อมูลที่เกี่ยวข้องกับวงจรของทั้งแอป เนื่องจากมีการจำกัดจำนวนพร็อพเพอร์ตี้ที่สร้างได้ และไม่สามารถเก็บพร็อพเพอร์ตี้ผู้ใช้ไว้ในที่เก็บถาวรได้
ตรวจสอบการตั้งค่าสำหรับบทบาท Google Analytics สำหรับพร็อพเพอร์ตี้และบัญชี Google Analytics สิทธิ์เหล่านี้จะได้รับการจัดการแยกจากสิทธิ์และบทบาท IAM ของโปรเจ็กต์ Firebase
ตรวจสอบว่ารหัส App Store และรหัสทีม (หากจำเป็น) ถูกต้องในการตั้งค่าโปรเจ็กต์ของคอนโซล Firebase
App Check
ตรวจสอบว่ารหัสทีมถูกต้องในการตั้งค่าโปรเจ็กต์ของคอนโซล Firebase
หากยังไม่ได้ดำเนินการ ให้เริ่มบังคับใช้ Firebase App Check สำหรับทุกบริการที่รองรับ App Check ช่วยให้มั่นใจได้ว่ามีเพียงแอปจริงของคุณเท่านั้นที่เข้าถึงบริการและทรัพยากรแบ็กเอนด์ได้
Authentication
ปิดใช้ผู้ให้บริการที่ไม่ได้ใช้ (โดยเฉพาะการตรวจสอบสิทธิ์แบบไม่ระบุตัวตน)
หากแอปใช้ฟีเจอร์ลงชื่อเข้าใช้ด้วย Google ให้ปรับเปลี่ยนหน้าจอขอความยินยอม OAuth ในแบบของคุณ
ปรับแต่งโดเมนและผู้ส่งสำหรับบริการส่งอีเมล Authentication
หากคุณใช้บริการยืนยันทาง SMS ของ Identity Platform ให้เริ่มบังคับใช้ Firebase App Check และกำหนดค่านโยบายภูมิภาค SMS เพื่อปกป้องแอปจากการละเมิดทาง SMS
ใช้การจัดการข้อผิดพลาดในแพลตฟอร์ม Apple สำหรับข้อผิดพลาด Authentication ที่พบบ่อย
เพิ่มแฮช SHA-1 ของรุ่นสำหรับใบรับรองการรับรองของแอปในการตั้งค่าโปรเจ็กต์ของคอนโซล Firebase คุณต้องใช้แฮช SHA-1 หากแอปใช้การลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์หรือลงชื่อเข้าใช้ด้วย Google (ซึ่งมีข้อกำหนดไคลเอ็นต์ OAuth)
เพิ่มการควบคุมการเข้าถึงสำหรับโดเมนเพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต โดยเฉพาะอย่างยิ่ง ให้สิทธิ์เข้าถึงโดเมนเวอร์ชันที่ใช้งานจริงในส่วน Authentication ของคอนโซล Firebase (สำคัญอย่างยิ่งหากคุณใช้ผลิตภัณฑ์ที่อาศัย Firebase Security Rules)
Cloud Firestore
กำหนดค่า Cloud Firestore Security Rules เพื่อป้องกันการเข้าถึงข้อมูลโดยไม่ตั้งใจ
ใช้ ProGuard สำหรับการลดขนาดโค้ดในบิลด์ที่เผยแพร่ หากไม่มี ProGuard, SDK Cloud Firestore และทรัพยากร Dependency ของ SDK อาจเพิ่มขนาด APK ของคุณ
Cloud Messaging
พิจารณาเปิดใช้การส่งออกข้อมูล Cloud Messaging ไปยัง BigQuery เพื่อให้คุณวิเคราะห์ข้อมูลด้วย BigQuery SQL หรือส่งออกข้อมูลเพื่อใช้กับเครื่องมือของคุณเองได้
อัปโหลดคีย์การตรวจสอบสิทธิ์ APNS สำหรับ Cloud Messaging ในแอป Apple ในคอนโซล Firebase หากใช้ใบรับรอง APNS โปรดตรวจสอบว่าได้อัปโหลดใบรับรอง APNS เวอร์ชันที่ใช้งานจริงแล้ว
พิจารณาเปิดใช้การบันทึกการตรวจสอบระบบคลาวด์สำหรับ Cloud Messaging เพื่อให้คุณสร้างบันทึกการตรวจสอบที่บันทึกกิจกรรมการดูแลระบบและการเข้าถึงภายในทรัพยากร Google Cloud ได้
อย่าลืมอัปเดต SDK เป็นเวอร์ชันล่าสุดเป็นระยะๆ เพื่อให้ทันกับฟีเจอร์และการอัปเดตความปลอดภัยใหม่ๆ
ทำตามแนวทางปฏิบัติแนะนำในการจัดการโทเค็นการลงทะเบียน Cloud Messaging ในเซิร์ฟเวอร์แอป บันทึกโทเค็นการลงทะเบียนพร้อมการประทับเวลา อัปเดตเมื่อมีการเปลี่ยนแปลง และนำโทเค็นที่ไม่มีการใช้งาน (ไม่มีการใช้งานนานกว่า 1 เดือน) ออกเพื่อให้แน่ใจว่าการรายงานการนำส่งถูกต้องและการกำหนดเป้าหมายข้อความมีประสิทธิภาพ
ทำตามแนวทางปฏิบัติแนะนำเมื่อส่งข้อความ Cloud Messaging จำนวนมาก ใช้ HTTP v1 API หรือ Firebase Admin SDK, ใช้ Exponential Backoff ที่มี Jitter สำหรับการลองใหม่ และทำตามส่วนหัว
Retry-Afterเพื่อหลีกเลี่ยงการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วและการจำกัดอัตราคำขอ
Cloud Storage
- กำหนดค่า Cloud Storage Security Rules เพื่อป้องกันการเข้าถึงข้อมูลโดยไม่ตั้งใจ
Crashlytics
ตรวจสอบว่าสมาชิกโปรเจ็กต์ที่เกี่ยวข้องแต่ละคน (หรือที่เรียกว่า "หลัก") ตั้งค่ากำหนดเพื่อรับการแจ้งเตือนเกี่ยวกับ Crashlytics หรือสถานะโปรเจ็กต์ (เช่น การเปลี่ยนแปลงแพ็กเกจการเรียกเก็บเงินหรือขีดจำกัดโควต้า) ดูข้อมูลเพิ่มเติมในรับการแจ้งเตือน Firebase
พิจารณาเปิดใช้การส่งออกข้อมูล Crashlytics ไปยัง BigQuery เพื่อให้คุณวิเคราะห์ข้อมูลด้วย BigQuery SQL หรือส่งออกข้อมูลเพื่อใช้กับเครื่องมือของคุณเองได้
(Android และ iOS แบบเนทีฟเท่านั้น) ลองเปิดใช้ความช่วยเหลือจาก AI ใน Crashlytics เพื่อช่วยให้คุณเข้าใจสาเหตุที่เกิดข้อขัดข้องและสิ่งที่ต้องทำได้เร็วขึ้น
อัปโหลดไฟล์ dSYM สำหรับบิลด์ที่เผยแพร่เพื่อใช้ใน Crashlytics ตรวจสอบว่า Xcode สามารถประมวลผล dSYM และอัปโหลดไฟล์โดยอัตโนมัติ
อัปโหลดการแมป ProGuard สำหรับบิลด์ที่เผยแพร่เพื่อใช้ใน Crashlytics คุณอัปโหลดได้โดยใช้ Firebase CLI
ลิงก์ Firebase กับ Google Play เพื่อดูประสิทธิภาพของแอป Android ได้ละเอียดยิ่งขึ้น เช่น คุณสามารถกรองรายงานข้อขัดข้องของแอปตามแทร็ก Google Play ซึ่งช่วยให้คุณมุ่งเน้นแดชบอร์ดไปที่บิลด์ที่เฉพาะเจาะจงได้ดียิ่งขึ้น
สำหรับบิลด์ที่กำหนดเป้าหมายเป็น Android และใช้ IL2CPP ให้ตรวจสอบว่าคุณอัปโหลดสัญลักษณ์เนทีฟสำหรับการเรียกใช้บิลด์แต่ละรายการที่คุณต้องการให้มีสัญลักษณ์ ไม่ว่าโค้ดหรือการกำหนดค่าจะมีการเปลี่ยนแปลงหรือไม่ก็ตาม
Dynamic Links
- Dynamic Links เลิกใช้งานแล้ว เราจึงขอแนะนำให้ย้ายข้อมูลออกจากบริการดังกล่าว ดูข้อมูลเพิ่มเติมได้ในคำถามที่พบบ่อยเกี่ยวกับการเลิกใช้งาน
Firebase ML
ดูหัวข้อเตรียมแอป Firebase ML Apple สำหรับเวอร์ชันที่ใช้งานจริง
ดูเตรียมแอป Android ของ Firebase ML ให้พร้อมสำหรับเวอร์ชันที่ใช้งานจริง
Performance Monitoring
ตรวจสอบว่าสมาชิกโปรเจ็กต์ที่เกี่ยวข้องแต่ละคน (หรือที่เรียกว่า "หลัก") ตั้งค่ากำหนดเพื่อรับการแจ้งเตือนเกี่ยวกับ Performance Monitoring หรือสถานะโปรเจ็กต์ (เช่น การเปลี่ยนแปลงแพ็กเกจการเรียกเก็บเงินหรือขีดจำกัดโควต้า) ดูข้อมูลเพิ่มเติมในรับการแจ้งเตือน Firebase
พิจารณาเปิดใช้การส่งออกข้อมูล Performance Monitoring ไปยัง BigQuery เพื่อให้คุณวิเคราะห์ข้อมูลด้วย BigQuery SQL หรือส่งออกข้อมูลเพื่อใช้กับเครื่องมือของคุณเองได้
Realtime Database
กำหนดค่า Realtime Database Security Rules เพื่อป้องกันการเข้าถึงข้อมูลโดยไม่ตั้งใจ
ตรวจสอบว่าคุณพร้อมที่จะปรับขนาด Realtime Database มีโควต้าเริ่มต้นที่มากพอสำหรับแอปพลิเคชันส่วนใหญ่ แต่บางแอปอาจต้องใช้ความจุเพิ่มเติม
กำหนดค่ากฎ ProGuard ให้ทำงานร่วมกับ Realtime Database
Remote Config
ตรวจสอบว่ากฎการทดสอบ Remote Config ไม่ส่งผลกระทบต่อผู้ใช้รุ่นที่เผยแพร่ และมีการกระจายค่าเริ่มต้นของเซิร์ฟเวอร์และในแอปที่เหมาะสมในแอปของคุณ
ลองกำหนดค่าพารามิเตอร์
minimum_versionใน Remote Config เพื่อให้คุณสามารถแจ้งหรือกำหนดให้ผู้ใช้อัปเดตแอปหากเวอร์ชันก่อนหน้าใช้ร่วมกันไม่ได้หรือเลิกใช้งานแล้ว