รายการตรวจสอบการเปิดตัว Firebase

เอกสารนี้ประกอบด้วยรายการตรวจสอบแนวทางปฏิบัติแนะนำและข้อควรพิจารณาก่อนเปิดตัวแอป Firebase ในเวอร์ชันที่ใช้งานจริง

แนวทางปฏิบัติแนะนำทั่วไปสำหรับการเผยแพร่

  • ตรวจสอบว่าคุณได้ทดสอบการเปลี่ยนแปลงทั้งหมดในFirebase Local Emulator Suite (สำหรับผลิตภัณฑ์ที่รองรับ) ก่อนที่จะนำไปใช้งานจริง การทดสอบอย่างละเอียด จะช่วยป้องกันข้อผิดพลาดที่อาจทำให้เกิดค่าใช้จ่ายสูง

  • เริ่มบังคับใช้ Firebase App Check กับทุกบริการที่รองรับ App Check ช่วยให้มั่นใจได้ว่ามีเพียงแอปจริงของคุณเท่านั้นที่เข้าถึงบริการและทรัพยากรแบ็กเอนด์ได้

  • ตรวจสอบรายการตรวจสอบด้านความปลอดภัยทั่วไปของ Firebase

  • ใช้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 ให้ตรวจสอบว่าคุณอัปโหลดสัญลักษณ์เนทีฟสำหรับการเรียกใช้บิลด์แต่ละรายการที่คุณต้องการให้มีสัญลักษณ์ ไม่ว่าโค้ดหรือการกำหนดค่าจะมีการเปลี่ยนแปลงหรือไม่ก็ตาม

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 เพื่อให้คุณสามารถแจ้งหรือกำหนดให้ผู้ใช้อัปเดตแอปหากเวอร์ชันก่อนหน้าใช้ร่วมกันไม่ได้หรือเลิกใช้งานแล้ว