รายการตรวจสอบการเปิดตัว 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 ที่แตกต่างกันสำหรับการพัฒนา การทดสอบ และการใช้งานจริง

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

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

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

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

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

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

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

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

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

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

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

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

Firebase AI Logic

Google Analytics

  • กำหนดเงื่อนไขกลุ่มเป้าหมายสำหรับ Google Analytics เพื่อเริ่มรวบรวมข้อมูลวิเคราะห์ เมื่อเปิดตัวแอป

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

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

  • ตรวจสอบการตั้งค่าสำหรับ Google Analytics บทบาท สำหรับ Google Analyticsพร็อพเพอร์ตี้และบัญชีของคุณ ระบบจะจัดการสิทธิ์เหล่านี้แยกต่างหากจากสิทธิ์และบทบาท IAM ของโปรเจ็กต์ Firebase

  • ตรวจสอบว่า App Store ID และ Team ID (หากจำเป็น) ถูกต้องในการ ตั้งค่าโปรเจ็กต์ ของคอนโซล Firebase

App Check

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