ดูและจัดการคีย์ API สำหรับ Firebase

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

หากคุณได้รับอีเมลจาก Google Cloud เกี่ยวกับ "คีย์ Google API ที่เข้าถึงได้แบบสาธารณะสำหรับโปรเจ็กต์ Google Cloud" และคีย์ API ที่ระบุไว้ในอีเมลคือคีย์ Firebase API โปรดตรวจสอบว่าคีย์ API เป็นไปตามข้อกำหนดต่อไปนี้เพื่อให้ปลอดภัยในการรวมไว้ในโค้ดหรือไฟล์การกำหนดค่า คุณสามารถยืนยันข้อมูลต่อไปนี้ได้ในหน้า API และบริการ > ข้อมูลเข้าสู่ระบบของคอนโซล Google Cloud

นอกจากนี้ โปรดตรวจสอบว่าคุณใช้ Firebase Security Rules และ App Check ตามที่แนะนำสำหรับผลิตภัณฑ์ Firebase ที่คุณใช้

ดูรายละเอียดเกี่ยวกับคีย์ API สำหรับ Firebase และรายการคำถามที่พบบ่อยได้ในดูข้อมูลเกี่ยวกับการใช้และการจัดการคีย์ API สำหรับ Firebase


ส่วนที่เหลือของหน้านี้จะให้ข้อมูลโดยละเอียดเกี่ยวกับคีย์ API สำหรับ Firebase รวมถึงรายการคำถามที่พบบ่อยเกี่ยวกับคีย์เหล่านี้

ข้อมูลทั่วไปเกี่ยวกับคีย์ API และ Firebase

คีย์ API สำหรับ Firebase แตกต่างจากคีย์ API ทั่วไป

คีย์ API สำหรับบริการ Firebase ไม่ได้ใช้เพื่อควบคุมการเข้าถึงทรัพยากรแบ็กเอนด์ ซึ่งแตกต่างจากการใช้คีย์ API โดยทั่วไป โดยจะทำได้ด้วย Firebase Security Rules (เพื่อควบคุมว่าผู้ใช้ปลายทางรายใดสามารถเข้าถึงทรัพยากรได้) และ Firebase App Check (เพื่อควบคุมว่าแอปใดสามารถเข้าถึงทรัพยากรได้) เท่านั้น

โดยปกติแล้ว คุณต้องปกป้องคีย์ API อย่างเข้มงวด (เช่น โดยใช้บริการห้องนิรภัยหรือตั้งค่าคีย์เป็นตัวแปรสภาพแวดล้อม) แต่คีย์ API สำหรับบริการ Firebase สามารถรวมไว้ในโค้ดหรือไฟล์การกำหนดค่าที่เช็คอินได้

แม้ว่าคีย์ API สำหรับบริการ Firebase จะปลอดภัยที่จะรวมไว้ในโค้ด แต่คุณควรตรวจสอบและใช้ข้อจำกัดและขีดจำกัดที่เหมาะสมกับคีย์เหล่านั้น

กำลังสร้างคีย์ API

โปรเจ็กต์ Firebase มีคีย์ API ได้หลายคีย์ แต่คีย์ API แต่ละคีย์จะเชื่อมโยงกับโปรเจ็กต์ Firebase ได้เพียงโปรเจ็กต์เดียวเท่านั้น

คีย์ API ที่ Firebase สร้างขึ้นโดยอัตโนมัติสำหรับแอป Firebase ของคุณ

Firebase จะสร้างคีย์ API สำหรับโปรเจ็กต์โดยอัตโนมัติเมื่อคุณทำสิ่งต่อไปนี้

  • สร้างโปรเจ็กต์ Firebase > สร้าง Browser key โดยอัตโนมัติ
  • สร้างแอป Apple ใน Firebase > สร้าง iOS key โดยอัตโนมัติ
  • สร้างแอป Android ใน Firebase > สร้าง Android key โดยอัตโนมัติ

นอกจากนี้ คุณยังสร้างคีย์ API ของตนเองในคอนโซล Google Cloud ได้ด้วย เช่น สำหรับการพัฒนาหรือแก้ไขข้อบกพร่อง ดูข้อมูลเพิ่มเติมเกี่ยวกับกรณีที่อาจมีการแนะนำให้ใช้ตัวเลือกนี้ในภายหลังในหน้านี้

การค้นหาคีย์ API

คุณสามารถดูและจัดการคีย์ API ทั้งหมดของโปรเจ็กต์ได้ในหน้า API และบริการ > ข้อมูลเข้าสู่ระบบ ของคอนโซล Google Cloud

นอกจากนี้ คุณยังดูได้ว่าคีย์ API ใดจับคู่กับแอป Firebase โดยอัตโนมัติในตำแหน่งต่อไปนี้ โดยค่าเริ่มต้น แอป Firebase ทั้งหมดของโปรเจ็กต์สำหรับแพลตฟอร์มเดียวกัน (Apple, Android หรือเว็บ) จะใช้คีย์ API เดียวกัน

  • แอป Apple ของ Firebase - ค้นหาคีย์ API ที่จับคู่อัตโนมัติในไฟล์การกำหนดค่า Firebase GoogleService-Info.plist ในช่อง API_KEY

  • แอป Android ใน Firebase - ค้นหาคีย์ API ที่จับคู่อัตโนมัติในไฟล์การกำหนดค่า Firebase google-services.json ในช่อง current_key

  • เว็บแอป Firebase - ค้นหาคีย์ API ที่จับคู่อัตโนมัติในออบเจ็กต์การกำหนดค่า Firebase ในช่อง apiKey

การใช้คีย์ API

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

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

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

นอกจากนี้ สำหรับ REST API บางรายการของบริการ Firebase คุณอาจต้องส่งค่าของคีย์ API ไปยังการเรียกอย่างชัดแจ้งเป็นพารามิเตอร์การค้นหา ตัวอย่างนี้แสดงวิธีส่งคำขอโดยใช้ Firebase Authentication API

https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY

ตรวจสอบและใช้ข้อจำกัดที่เหมาะสมกับคีย์ API

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

ตรวจสอบ API ที่เพิ่มลงในรายการที่อนุญาตโดยอัตโนมัติสำหรับคีย์ Firebase API

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

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

จำกัดโควต้าให้เข้มงวดขึ้นหากคุณใช้ Authentication ที่ใช้รหัสผ่าน

หากคุณใช้ Firebase Authentication ที่ใช้รหัสผ่านและมีคนได้รับคีย์ API ของคุณ บุคคลนั้นจะไม่สามารถเข้าถึงฐานข้อมูลหรือข้อมูล Cloud Storage ของโปรเจ็กต์ Firebase ตราบใดที่ข้อมูลนี้ได้รับการปกป้องโดย Firebase Security Rules อย่างไรก็ตาม ผู้ใช้จะใช้คีย์ API ของคุณเพื่อเข้าถึงปลายทางการตรวจสอบสิทธิ์ของ Firebase และส่งคำขอตรวจสอบสิทธิ์ไปยังโปรเจ็กต์ของคุณได้

เพื่อลดความเป็นไปได้ที่อาจมีผู้ใช้คีย์ API ในทางที่ผิดเพื่อพยายามโจมตีแบบบรูตฟอร์ซ คุณสามารถจำกัดโควต้าเริ่มต้นของปลายทาง identitytoolkit.googleapis.com ให้สอดคล้องกับการคาดการณ์การเข้าชมปกติของแอป โปรดทราบว่าหากคุณจำกัดโควต้านี้และแอปมีผู้ใช้เพิ่มขึ้นอย่างรวดเร็ว คุณอาจได้รับข้อผิดพลาดในการลงชื่อเข้าใช้จนกว่าจะเพิ่มโควต้า คุณเปลี่ยนโควต้า API ของโปรเจ็กต์ได้ในคอนโซล Google Cloud

ใช้คีย์ API ที่จำกัดและแยกต่างหากสำหรับบริการที่ไม่ใช่ Firebase

แม้ว่าโดยทั่วไปแล้วคีย์ API ที่ใช้สำหรับบริการ Firebase ไม่จำเป็นต้องได้รับการปฏิบัติเป็นความลับ แต่คุณควรระมัดระวังเป็นพิเศษกับคีย์ API ที่ใช้กับ API อื่นๆ ของ Google Cloud

หากคุณใช้ Google Cloud API (ในแพลตฟอร์มใดก็ตาม) ที่ไม่ได้มีไว้สำหรับบริการ/ผลิตภัณฑ์ Firebase เราขอแนะนำอย่างยิ่งให้สร้างคีย์ API ที่จำกัดแยกต่างหากเพื่อใช้กับ API เหล่านั้น ซึ่งเป็นสิ่งสำคัญอย่างยิ่งหาก API มีไว้สำหรับบริการ Google Cloud ที่เรียกเก็บเงินได้ โดยเฉพาะอย่างยิ่ง อย่าใส่ Gemini Developer API ในรายการที่อนุญาตสำหรับคีย์ API ที่เข้าถึงได้แบบสาธารณะหรือคีย์ที่ใช้สำหรับบริการอื่นๆ

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

ใช้คีย์ API เฉพาะสภาพแวดล้อม

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

หากต้องการลดปัญหาในการโปรโมตการเปลี่ยนแปลงโค้ดจากการพัฒนาไปสู่การทดลองใช้จริงและการใช้งานจริง แทนที่จะรวมคีย์ API ไว้ในโค้ด ให้ตั้งค่าเป็นตัวแปรสภาพแวดล้อมหรือรวมไว้ในไฟล์การกำหนดค่า

คำถามที่พบบ่อยและการแก้ปัญหา

คำถามที่พบบ่อย

การแก้ปัญหา