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

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

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

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

คีย์ API สำหรับบริการ Firebase ไม่ได้ใช้เพื่อควบคุมการเข้าถึงทรัพยากรแบ็กเอนด์ ซึ่งทำได้ด้วย 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 สร้างโดยอัตโนมัติ
  • สร้างแอป 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 ในช่อง apiKey

การใช้คีย์ API

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

เช่น คุณสามารถใช้คีย์ API อย่างชัดเจนโดยการส่งค่าของคีย์ไปยังการเรียก REST API ในฐานะพารามิเตอร์การค้นหา ตัวอย่างนี้แสดงวิธีส่งคําขอไปยัง Dynamic Links Link Shortener API

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

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

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

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

ตรวจสอบ 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 แต่ผู้ใช้สามารถเข้าถึงปลายทางการตรวจสอบสิทธิ์ของ Firebase และส่งคําขอการตรวจสอบสิทธิ์กับโปรเจ็กต์ของคุณได้

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

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

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

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

เช่น หากคุณใช้ Firebase ML และ Cloud Vision API ใน iOS คุณควรสร้างคีย์ API แยกต่างหากเพื่อใช้เข้าถึง Cloud Vision API เท่านั้น

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

วิธีการเหล่านี้อธิบายวิธีสร้างคีย์ API ที่มีการจํากัดแยกต่างหากสําหรับ API จำลองชื่อ Super Service API

ขั้นตอนที่ 1: กำหนดค่าคีย์ API ที่มีอยู่เพื่อไม่ให้สิทธิ์เข้าถึง Super Service API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของคอนโซล Google Cloud เลือกโปรเจ็กต์เมื่อได้รับข้อความแจ้ง

  2. เปิดมุมมองการแก้ไขสำหรับคีย์ API ที่มีอยู่แต่ละรายการในรายการ

  3. ในส่วนการจํากัด API ให้เลือกจํากัดคีย์ จากนั้นเพิ่ม API ทั้งหมดที่ต้องการให้คีย์ API มีสิทธิ์เข้าถึงลงในรายการ ตรวจสอบว่าคุณไม่ได้รวม API ที่คุณกําลังสร้างคีย์ API แยกต่างหาก (ในตัวอย่างนี้คือ Super Service API)

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

ตอนนี้คีย์ API ที่มีอยู่จะไม่ให้สิทธิ์เข้าถึง Super Service API แต่คีย์แต่ละรายการจะยังคงใช้งานได้กับ API ที่คุณเพิ่มลงในรายการข้อจํากัด API ของ Super Service API

ขั้นตอนที่ 2: สร้างและใช้คีย์ API ใหม่เพื่อเข้าถึง Super Service API

  1. กลับไปที่หน้าข้อมูลเข้าสู่ระบบ ตรวจสอบว่าคุณยังคงเลือกโปรเจ็กต์ Firebase อยู่

  2. คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API จดคีย์ API ใหม่ไว้ แล้วคลิกจํากัดคีย์

  3. ในส่วนการจํากัด API ให้เลือกจํากัดคีย์ จากนั้นเพิ่ม Super Service API เท่านั้นลงในรายการ

    คีย์ API ใหม่นี้จะให้สิทธิ์เข้าถึงเฉพาะ Super Service API เท่านั้น

  4. กำหนดค่าแอปและบริการให้ใช้คีย์ API ใหม่

ใช้คีย์ API สำหรับสภาพแวดล้อมที่เฉพาะเจาะจง (แนะนำ)

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

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

โปรดทราบว่าหากใช้ Firebase Local Emulator Suite สําหรับการพัฒนาควบคู่ไปกับ Firebase ML คุณต้องสร้างและใช้คีย์ API สําหรับแก้ไขข้อบกพร่องเท่านั้น ดูวิธีการสร้างคีย์ประเภทดังกล่าวได้ในFirebase MLเอกสารประกอบ

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

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

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

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

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

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

โปรดทราบข้อมูลต่อไปนี้เกี่ยวกับวิธีที่ Firebase ใช้ "ข้อจํากัดของ API" เหล่านี้

  • ตั้งแต่เดือนพฤษภาคม 2024 เป็นต้นไป คีย์ API ใหม่ทั้งหมดที่ Firebase จัดสรรโดยอัตโนมัติจะจำกัดไว้ที่รายการ API ที่เกี่ยวข้องกับ Firebase โดยอัตโนมัติ

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

  • คีย์ API ที่มีอยู่และถูกจํากัดอยู่แล้วซึ่ง Firebase ได้จัดสรรโดยอัตโนมัติก่อนหน้านี้จะไม่มีการเปลี่ยนแปลง

  • คีย์ API ที่มีอยู่ซึ่ง Firebase ไม่ได้จัดสรรโดยอัตโนมัติจะไม่มีการเปลี่ยนแปลง

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

  1. ไปที่ การตั้งค่าโปรเจ็กต์ แล้วเลื่อนลงไปที่การ์ดแอปของคุณ

  2. เลือกแอปที่ต้องการ

  3. รับไฟล์/ออบเจ็กต์การกําหนดค่า Firebase สําหรับแอปที่ต้องการ แล้วค้นหาคีย์ API ของแอป

    • Apple: ดาวน์โหลด GoogleService-Info.plist แล้วค้นหาช่อง API_KEY

    • Android: ดาวน์โหลด google-services.json แล้วค้นหาการกําหนดค่าสําหรับแอปที่ต้องการ (มองหาชื่อแพ็กเกจ) จากนั้นค้นหาช่อง current_key

    • เว็บ: เลือกตัวเลือก Config แล้วค้นหาช่อง apiKey

  1. รับไฟล์/ออบเจ็กต์การกําหนดค่า Firebase สําหรับแอปที่ต้องการโดยเรียกใช้คําสั่งต่อไปนี้

    firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
    • PLATFORM (อย่างใดอย่างหนึ่ง): IOS | ANDROID | WEB
    • FIREBASE_APP_ID: ตัวระบุที่ไม่ซ้ำกันซึ่ง Firebase กำหนดให้กับแอป Firebase ของคุณ (ค้นหารหัสแอป)
  2. ค้นหาคีย์ API ในการกำหนดค่า Firebase ที่พิมพ์ออกมาของแอป

    • Apple: ค้นหาช่อง API_KEY

    • Android: ค้นหาการกําหนดค่าสําหรับแอปที่สนใจ (มองหาชื่อแพ็กเกจ) จากนั้นค้นหาช่อง current_key

    • เว็บ: ค้นหาช่อง apiKey

  1. รับ apiKeyId (UID) ของคีย์ API โดยการเรียกใช้ปลายทางที่เกี่ยวข้องสําหรับแอปที่ต้องการ จากนั้นส่งค่า apiKeyId ไปยังขั้นตอนถัดไป

  2. รับสตริงคีย์ API โดยการเรียกใช้ projects.locations.keys.getKeyString

    keyString นี้เป็นค่าเดียวกับที่พบในอาร์ติแฟกต์การกําหนดค่าของแอป (Apple | Android | เว็บ)

  • แอป Firebase สำหรับ Apple - แอปแต่ละแอปมีไฟล์การกําหนดค่าของตนเองและแสดงคีย์ API ได้เพียงรายการเดียว

  • แอป Android ใน Firebase — แอป Android ทั้งหมดในโปรเจ็กต์ Firebase จะแสดงอยู่ในไฟล์การกําหนดค่าเดียวกัน และแอปแต่ละแอปจะมีคีย์ API แสดงอยู่ได้เพียงรายการเดียว อย่างไรก็ตาม แอปแต่ละแอปในไฟล์การกําหนดค่านี้อาจมีคีย์ที่ต่างกัน

  • เว็บแอป Firebase — แอปแต่ละแอปจะมีออบเจ็กต์การกําหนดค่าของตัวเอง และมีคีย์ API แสดงอยู่ได้เพียงคีย์เดียว

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

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

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

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

ได้ คุณสามารถแก้ไขไฟล์/ออบเจ็กต์การกําหนดค่าด้วยตนเองเพื่อเชื่อมโยงคีย์ API อื่นกับแอป

โปรดทราบว่าหากคุณรับไฟล์/ออบเจ็กต์การกําหนดค่าของแอปอีกครั้งจากคอนโซล ระบบจะแสดงคีย์ API ที่Firebase จับคู่กับแอปนั้นโดยอัตโนมัติเสมอ คุณจึงต้องแก้ไขด้วยตนเองอีกครั้งตามต้องการ

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

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

การลบคีย์ API เป็นการดำเนินการที่มีผลถาวรและไม่สามารถยกเลิกได้

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

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

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

ชื่อ API (ชื่อบริการ) ชื่อที่แสดงของ API
บริการ / ผลิตภัณฑ์ Firebase ที่เชื่อมโยง
firebase.googleapis.com Firebase Management API ผลิตภัณฑ์ทั้งหมด
logging.googleapis.com Cloud Logging API ผลิตภัณฑ์ทั้งหมด
firebaseinstallations.googleapis.com Firebase Installations API Cloud Messaging, Crashlytics, In-App Messaging, Performance Monitoring, Remote Config, Firebase ML
firebaseappcheck.googleapis.com Firebase App Check API App Check
firebaseappdistribution.googleapis.com Firebase App Distribution API App Distribution
firebaseapptesters.googleapis.com Firebase App Testers API App Distribution
identitytoolkit.googleapis.com Identity Toolkit API Authentication
securetoken.googleapis.com Token Service API Authentication
firebaserules.googleapis.com * Firebase Rules API Cloud Firestore, Cloud Storage, Realtime Database
datastore.googleapis.com Cloud Datastore API Cloud Firestore
firestore.googleapis.com Google Cloud Firestore API Cloud Firestore
fcmregistrations.googleapis.com FCM Registration API Cloud Messaging
firebasestorage.googleapis.com Cloud Storage for Firebase API Cloud Storage
firebasedynamiclinks.googleapis.com Firebase Dynamic Links API Dynamic Links
firebasehosting.googleapis.com * Firebase Hosting API Hosting
firebaseinappmessaging.googleapis.com Firebase In-App Messaging API In-App Messaging
firebaseml.googleapis.com Firebase ML API Firebase ML
mlkit.googleapis.com ** ML Kit API Firebase ML
mobilecrashreporting.googleapis.com Mobile Crash Reporting API Performance Monitoring
play.googleapis.com API ของ Google Play สำหรับนักพัฒนาแอป Android Performance Monitoring
firebaseremoteconfig.googleapis.com Firebase Remote Config API Performance Monitoring, Remote Config
firebaseremoteconfigrealtime.googleapis.com Firebase Remote Config Realtime API Performance Monitoring, Remote Config
cloudconfig.googleapis.com ** ไม่มี Remote Config
firebasedatabase.googleapis.com * Firebase Realtime Database API Realtime Database
firebasevertexai.googleapis.com Vertex AI ใน Firebase API Vertex AI in Firebase

* ต้องระบุเฉพาะในกรณีที่คุณใช้คีย์ Firebase API กับเครื่องมือของบุคคลที่สามหรือการเข้าถึง REST โดยตรงไปยังบริการ / ผลิตภัณฑ์ Firebase

** ต้องระบุสำหรับ SDK ของผลิตภัณฑ์เวอร์ชันเก่า หากคุณใช้ SDK เวอร์ชันล่าสุด API ไม่จำเป็นต้องอยู่ในรายการที่อนุญาตของคีย์

การแก้ปัญหา

ทำตามคำแนะนำในคำถามที่พบบ่อยนี้หากคุณได้รับAPI_KEY_SERVICE_BLOCKEDข้อผิดพลาดหรือข้อผิดพลาดที่มีลักษณะดังต่อไปนี้

Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.

คีย์ API ที่แอปใช้เรียก API อาจมีการ"ข้อจํากัด API" มีผลบังคับใช้ และรายการที่อนุญาตของคีย์ไม่มี API นั้น

คีย์ API ที่เว็บแอปของคุณใช้อาจมี"ข้อจำกัด API" มีผล ในกรณีนี้ ให้ตรวจสอบว่า Firebase Management API อยู่ในรายการ API ที่อนุญาต

สาเหตุที่พบบ่อยที่สุดบางประการที่ทำให้คีย์ API ไม่ถูกต้องมีดังนี้

  • คีย์ API มี"ข้อจํากัดของคีย์ API" มีผลบังคับใช้ ซึ่งทําให้คีย์ไม่ตรงกับแอปที่พยายามใช้คีย์ ("ข้อจํากัดของแอปพลิเคชัน") หรือใช้งานกับ API ที่เรียกใช้ไม่ได้ ("ข้อจํากัดของ API")

  • ลบคีย์ API ออกจากโปรเจ็กต์ในคอนโซล Google Cloud แล้ว

  • ระบบไม่ได้สร้างคีย์ API สำหรับรหัสโปรเจ็กต์ที่แสดงในไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ของแอป

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