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

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

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

  • ซึ่งเป็นคีย์ API ที่คุณใช้สำหรับแอป Firebase และเฉพาะสำหรับบริการ Firebase โดยปกติแล้วคีย์เหล่านี้จะเรียกว่า Browser key (auto created by Firebase) หรือ Android key (auto created by Firebase) หรือ iOS key (auto created by Firebase)
  • โดยมี API ที่เกี่ยวข้องกับ Firebase ที่จำเป็น ทั้งหมดรวมอยู่ในรายการที่อนุญาต "ข้อจำกัด API" ของคีย์
  • ไม่มี API อื่นๆ ในรายการที่อนุญาต "ข้อจำกัด API" โดยเฉพาะอย่างยิ่ง รายการควรไม่มี Generative Language API

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

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

การสร้างคีย์ API

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

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

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

  • สร้างโปรเจ็กต์ Firebase > Browser key สร้างโดยอัตโนมัติ
  • สร้างแอป Firebase Apple > iOS key สร้างโดยอัตโนมัติ
  • สร้างแอป Firebase Android > 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 config ในช่อง 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 ที่เพิ่มลงในรายการที่อนุญาตโดยอัตโนมัติสำหรับคีย์ API ของ Firebase

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

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

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

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

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

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

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

การแก้ปัญหา