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

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

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

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

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

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

  • ใช้ Firebase Remote Config การเปิดตัวแบบค่อยเป็นค่อยไป เพื่อ เผยแพร่ฟีเจอร์และการอัปเดตใหม่ๆ ไปยังแอปของคุณอย่างปลอดภัยและค่อยๆ เป็นค่อยไป

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

ทราบขีดจำกัดของแพ็กเกจราคาและตั้งค่าการแจ้งเตือนงบประมาณ

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

  • ตั้งค่า การแจ้งเตือนงบประมาณ สำหรับโปรเจ็กต์

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

    • พิจารณาตั้งค่า การแจ้งเตือนและการดำเนินการขั้นสูง, เช่น ฟังก์ชันที่จะปิดใช้การเรียกเก็บเงินเมื่อได้รับการแจ้งเตือน

    • หากคุณใช้ Firebase AI Logic, App Hosting, Cloud Functions for Firebase, หรือ Firebase Extensions เราขอแนะนำอย่างยิ่งให้คุณ ตั้งค่า ขีดจำกัดสูงสุดของงบประมาณ, ซึ่งจะหยุดบริการที่เกี่ยวข้องชั่วคราวหากโปรเจ็กต์ของคุณใช้งบประมาณเกิน งบประมาณที่ตั้งไว้สำหรับบริการนั้น

  • ตรวจสอบการใช้งานในแดชบอร์ดเฉพาะผลิตภัณฑ์หรือ ใน การใช้งานและการเรียกเก็บเงินแดชบอร์ด ในFirebaseคอนโซล

ตรวจสอบว่าโปรเจ็กต์และแอป Firebase เป็นไปตามแนวทางปฏิบัติแนะนำ

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

โปรดทราบว่าโปรเจ็กต์ Firebase เป็นเพียงGoogle Cloud โปรเจ็กต์ที่เปิดใช้บริการและการกำหนดค่า Firebase ซึ่งหมายความว่าแนวทางปฏิบัติแนะนำมากมายที่ Google Cloud แนะนำก็ใช้ได้กับ Firebase ด้วย

  • ใช้โปรเจ็กต์ Firebase ที่แตกต่างกันสำหรับการพัฒนา การทดสอบ และการใช้งานจริง

    พยายามจำกัดการเปิดเผยโปรเจ็กต์ที่เชื่อมโยงกับแอปที่ใช้งานจริงโดยไม่คาดคิด ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเวิร์กโฟลว์การพัฒนา

  • ปกป้องโปรเจ็กต์ที่สำคัญ โดยเฉพาะอย่างยิ่งโปรเจ็กต์ที่เชื่อมโยงกับแอปที่ใช้งานจริง

  • หากยังไม่ได้ทำ ให้พิจารณาตั้งค่า Google Cloud องค์กร และเพิ่ม โปรเจ็กต์ Firebase ลงในองค์กร

  • เพิ่มเจ้าของมากกว่า 1 คนในโปรเจ็กต์ Firebase โดยเฉพาะอย่างยิ่งหากโปรเจ็กต์ ไม่ได้ อยู่ในองค์กร Google Cloud ดูข้อมูลเพิ่มเติมเกี่ยวกับ เวลาและวิธีมอบหมายเจ้าของ สำหรับโปรเจ็กต์ Firebase

  • เพิ่มสมาชิกโปรเจ็กต์ (หรือที่เรียกว่า "ผู้มีสิทธิ์") เป็นกลุ่ม Google แทนที่จะเพิ่มทีละคน

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

  • ให้สิทธิ์เข้าถึงโปรเจ็กต์และทรัพยากร Firebase ในระดับที่เหมาะสมแก่สมาชิกโปรเจ็กต์แต่ละคน (หรือที่เรียกว่า "ผู้มีสิทธิ์") ดูข้อมูลเพิ่มเติมได้ที่ หัวข้อจัดการสิทธิ์เข้าถึงโปรเจ็กต์ด้วย Firebase IAM

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

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

  • จำกัดคีย์ Firebase API ให้ใช้ได้เฉพาะกับ API ที่ ต้องอยู่ใน รายการที่อนุญาตของคีย์ API นอกจากนี้ โปรดดูข้อมูลเกี่ยวกับคีย์ API ใน รายการตรวจสอบความปลอดภัยของ Firebase

เตรียมบริการที่เฉพาะเจาะจงซึ่งใช้ในแอป

ผลิตภัณฑ์และบริการแต่ละรายการที่ใช้ในแอปอาจมีสิ่งที่ควรพิจารณาที่เฉพาะเจาะจงเมื่อใช้ในเวอร์ชันที่ใช้งานจริง

Firebase AI Logic

Google Analytics

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, Cloud Firestore SDK และทรัพยากร Dependency อาจทำให้ขนาด APK เพิ่มขึ้น

Cloud Messaging

  • พิจารณา เปิดใช้การส่งออกข้อมูล Cloud Messaging ไปยัง BigQuery เพื่อให้คุณวิเคราะห์ข้อมูลด้วย BigQuery SQL หรือส่งออก ข้อมูลเพื่อใช้กับเครื่องมือของคุณเองได้

  • อัปโหลดคีย์การตรวจสอบสิทธิ์ APNS สำหรับ Cloud Messaging บน แอป Apple ใน Firebase คอนโซล หากใช้ใบรับรอง APNS ให้ตรวจสอบว่าได้อัปโหลดใบรับรอง APNS เวอร์ชันที่ใช้งานจริงแล้ว

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 ที่เป็นแบบทดลองจะไม่ส่งผลกระทบต่อผู้ใช้ที่เผยแพร่ และมีการเผยแพร่ค่าเริ่มต้นของเซิร์ฟเวอร์และค่าเริ่มต้นในแอปที่เหมาะสมใน แอป