คีย์ 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 ได้เพียงโปรเจ็กต์เดียวเท่านั้น
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 ที่มีการจํากัดแยกต่างหากสําหรับ API จำลองชื่อ Super Service API
ขั้นตอนที่ 1: กำหนดค่าคีย์ API ที่มีอยู่เพื่อไม่ให้สิทธิ์เข้าถึง Super Service API
เปิดหน้าข้อมูลเข้าสู่ระบบของคอนโซล Google Cloud เลือกโปรเจ็กต์เมื่อได้รับข้อความแจ้ง
เปิดมุมมองการแก้ไขสำหรับคีย์ API ที่มีอยู่แต่ละรายการในรายการ
ในส่วนการจํากัด 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
กลับไปที่หน้าข้อมูลเข้าสู่ระบบ ตรวจสอบว่าคุณยังคงเลือกโปรเจ็กต์ Firebase อยู่
คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API จดคีย์ API ใหม่ไว้ แล้วคลิกจํากัดคีย์
ในส่วนการจํากัด API ให้เลือกจํากัดคีย์ จากนั้นเพิ่ม
Super Service API
เท่านั้นลงในรายการคีย์ API ใหม่นี้จะให้สิทธิ์เข้าถึงเฉพาะ
Super Service API
เท่านั้นกำหนดค่าแอปและบริการให้ใช้คีย์ API ใหม่
ใช้คีย์ API สำหรับสภาพแวดล้อมที่เฉพาะเจาะจง (แนะนำ)
หากคุณตั้งค่าโปรเจ็กต์ Firebase ที่แตกต่างกันสําหรับสภาพแวดล้อมที่แตกต่างกัน เช่น การทดลองใช้และเวอร์ชันที่ใช้งานจริง อินสแตนซ์แอปแต่ละรายการต้องโต้ตอบกับโปรเจ็กต์ Firebase ที่เกี่ยวข้อง เช่น อินสแตนซ์ของแอปที่ใช้ทดสอบไม่ควรสื่อสารกับโปรเจ็กต์ Firebase เวอร์ชันที่ใช้งานจริง ซึ่งหมายความว่าแอปที่ใช้เวอร์ชันที่เตรียมใช้งานต้องใช้คีย์ API ที่เชื่อมโยงกับโปรเจ็กต์ Firebase ที่ใช้เวอร์ชันที่เตรียมใช้งาน
หากต้องการลดปัญหาในการโปรโมตการเปลี่ยนแปลงโค้ดจากการพัฒนาไปยังช่วงเตรียมความพร้อมและไปยังเวอร์ชันที่ใช้งานจริง ให้ตั้งค่าคีย์ API เป็นตัวแปรสภาพแวดล้อมหรือรวมไว้ในไฟล์การกําหนดค่าแทนการรวมไว้ในโค้ด
โปรดทราบว่าหากใช้ Firebase Local Emulator Suite สําหรับการพัฒนาควบคู่ไปกับ Firebase ML คุณต้องสร้างและใช้คีย์ API สําหรับแก้ไขข้อบกพร่องเท่านั้น ดูวิธีการสร้างคีย์ประเภทดังกล่าวได้ในFirebase MLเอกสารประกอบ
คำถามที่พบบ่อยและการแก้ปัญหา
คำถามที่พบบ่อย
คีย์ API สำหรับบริการ Firebase ถูกจํากัดโดยค่าเริ่มต้นไหม
ใช่ โดยค่าเริ่มต้น คีย์ 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
คุณใช้ตัวเลือกใดก็ได้ต่อไปนี้เพื่อระบุว่าคีย์ API ใดเชื่อมโยงกับแอป Firebase
ไปที่ การตั้งค่าโปรเจ็กต์ แล้วเลื่อนลงไปที่การ์ดแอปของคุณ
เลือกแอปที่ต้องการ
รับไฟล์/ออบเจ็กต์การกําหนดค่า Firebase สําหรับแอปที่ต้องการ แล้วค้นหาคีย์ API ของแอป
Apple: ดาวน์โหลด
GoogleService-Info.plist
แล้วค้นหาช่องAPI_KEY
Android: ดาวน์โหลด
google-services.json
แล้วค้นหาการกําหนดค่าสําหรับแอปที่ต้องการ (มองหาชื่อแพ็กเกจ) จากนั้นค้นหาช่องcurrent_key
เว็บ: เลือกตัวเลือก Config แล้วค้นหาช่อง
apiKey
รับไฟล์/ออบเจ็กต์การกําหนดค่า Firebase สําหรับแอปที่ต้องการโดยเรียกใช้คําสั่งต่อไปนี้
firebase apps:sdkconfig
PLATFORM FIREBASE_APP_ID - PLATFORM (อย่างใดอย่างหนึ่ง):
IOS
|ANDROID
|WEB
- FIREBASE_APP_ID: ตัวระบุที่ไม่ซ้ำกันซึ่ง Firebase กำหนดให้กับแอป Firebase ของคุณ (ค้นหารหัสแอป)
- PLATFORM (อย่างใดอย่างหนึ่ง):
ค้นหาคีย์ API ในการกำหนดค่า Firebase ที่พิมพ์ออกมาของแอป
Apple: ค้นหาช่อง
API_KEY
Android: ค้นหาการกําหนดค่าสําหรับแอปที่สนใจ (มองหาชื่อแพ็กเกจ) จากนั้นค้นหาช่อง
current_key
เว็บ: ค้นหาช่อง
apiKey
รับ
apiKeyId
(UID) ของคีย์ API โดยการเรียกใช้ปลายทางที่เกี่ยวข้องสําหรับแอปที่ต้องการ จากนั้นส่งค่าapiKeyId
ไปยังขั้นตอนถัดไป- Apple: โทรหา
projects.iosApps.get
- Android: โทรหา
projects.androidApps.get
- เว็บ: โทรหา
projects.webApps.get
- Apple: โทรหา
รับสตริงคีย์ API โดยการเรียกใช้
projects.locations.keys.getKeyString
keyString
นี้เป็นค่าเดียวกับที่พบในอาร์ติแฟกต์การกําหนดค่าของแอป (Apple | Android | เว็บ)
ฉันมีคีย์ API 2 รายการสำหรับแอป Firebase เดียวกันในไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ได้ไหม
แอป Firebase สำหรับ Apple - แอปแต่ละแอปมีไฟล์การกําหนดค่าของตนเองและแสดงคีย์ API ได้เพียงรายการเดียว
แอป Android ใน Firebase — แอป Android ทั้งหมดในโปรเจ็กต์ Firebase จะแสดงอยู่ในไฟล์การกําหนดค่าเดียวกัน และแอปแต่ละแอปจะมีคีย์ API แสดงอยู่ได้เพียงรายการเดียว อย่างไรก็ตาม แอปแต่ละแอปในไฟล์การกําหนดค่านี้อาจมีคีย์ที่ต่างกัน
เว็บแอป Firebase — แอปแต่ละแอปจะมีออบเจ็กต์การกําหนดค่าของตัวเอง และมีคีย์ API แสดงอยู่ได้เพียงคีย์เดียว
แต่คุณสามารถใช้คีย์ API หลายรายการกับแอปเดียวได้ คุณต้องระบุกลไกให้แอปเข้าถึงคีย์ API อื่นๆ เหล่านี้ เช่น ผ่านตัวแปรสภาพแวดล้อม กลไกในการเข้าถึงคีย์ API อื่นๆ ต้องไม่ขึ้นอยู่กับคีย์ API เหล่านั้นที่แสดงอยู่ในไฟล์/ออบเจ็กต์การกําหนดค่า Firebase
Firebase รู้ได้อย่างไรว่าควรจับคู่คีย์ API ใดกับแอป (เช่น ในไฟล์/ออบเจ็กต์การกําหนดค่า Firebase)
เมื่อคุณรับไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ของแอปเป็นครั้งแรก Firebase จะตรวจสอบว่ามีคีย์ API ใดอยู่ในโปรเจ็กต์ที่มี"ข้อจํากัดของแอปพลิเคชัน" ที่ตรงกับแอปหรือไม่ (เช่น รหัสแพ็กเกจที่ตรงกันสําหรับแอป Apple)
หาก Firebase ไม่พบคีย์ที่ถูกจํากัดที่ตรงกัน ระบบจะแสดง iOS key
สําหรับแอป Apple, Android key
สําหรับแอป Android และ Browser key
สําหรับเว็บแอปในไฟล์/ออบเจ็กต์การกําหนดค่า (โดยสมมติว่าคีย์เหล่านี้มีอยู่และไม่มี "ข้อจํากัดแอปพลิเคชัน" ที่ทำให้คีย์ไม่ตรงกับแอปนั้น)
ฉันจะลบคีย์และฟิลด์ API ออกจากไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ด้วยตนเองได้ไหม
ได้ คุณลบคีย์ API ด้วยตนเองจากไฟล์/ออบเจ็กต์การกําหนดค่าได้ อย่างไรก็ตาม คุณต้องระบุกลไกอื่นๆ เพื่อให้แอปเข้าถึงคีย์ API ได้ (เช่น ผ่านตัวแปรสภาพแวดล้อม) ไม่เช่นนั้นการเรียกใช้บริการ Firebase จะดำเนินการไม่สำเร็จ
ฉันจะแก้ไขไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ด้วยคีย์ API อื่นด้วยตนเองได้ไหม
ได้ คุณสามารถแก้ไขไฟล์/ออบเจ็กต์การกําหนดค่าด้วยตนเองเพื่อเชื่อมโยงคีย์ API อื่นกับแอป
โปรดทราบว่าหากคุณรับไฟล์/ออบเจ็กต์การกําหนดค่าของแอปอีกครั้งจากคอนโซล ระบบจะแสดงคีย์ API ที่Firebase จับคู่กับแอปนั้นโดยอัตโนมัติเสมอ คุณจึงต้องแก้ไขด้วยตนเองอีกครั้งตามต้องการ
ฉันจะย้ายคีย์ API จากโปรเจ็กต์ Firebase หนึ่งไปยังอีกโปรเจ็กต์หนึ่งได้ไหม
ไม่ได้ คีย์ API จะระบุเฉพาะโปรเจ็กต์หนึ่งๆ เท่านั้นและย้ายไปยังโปรเจ็กต์อื่นไม่ได้
จะเกิดอะไรขึ้นหากฉันลบคีย์ API ที่แสดงในคอนโซล Google Cloud
หากคุณลบคีย์ API ที่แอปใช้อยู่ การเรียก API จากแอปนั้นจะดำเนินการไม่สำเร็จ คุณอาจได้รับรายงาน อีเมล หรือข้อผิดพลาดที่ระบุว่าคุณพยายามใช้คีย์ API ที่ไม่ถูกต้อง
การลบคีย์ API เป็นการดำเนินการที่มีผลถาวรและไม่สามารถยกเลิกได้
API ใดบ้างที่ต้องอยู่ในรายการที่อนุญาต "ข้อจํากัด API" สําหรับคีย์ API ของ Firebase
สําหรับคีย์ 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
หรือข้อผิดพลาด 403 "ไม่อนุญาต" ที่ระบุว่าคำขอไปยัง 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 นั้น
หากคุณได้รับข้อผิดพลาดนี้เมื่อพยายามใช้บริการ / ผลิตภัณฑ์ที่เกี่ยวข้องกับ Firebase ให้ตรวจสอบว่าคีย์ API ที่คุณใช้มีAPI ที่จําเป็นทั้งหมดรวมอยู่ในรายการที่อนุญาต "ข้อจํากัด API" ของคีย์
หากคุณได้รับข้อผิดพลาดนี้เมื่อพยายามใช้บริการที่ไม่ใช่ Firebase เราขอแนะนําอย่างยิ่งให้สร้างคีย์ API ใหม่สําหรับบริการและ API นั้นโดยเฉพาะ คุณควรใช้คีย์ Firebase API กับบริการ / ผลิตภัณฑ์ Firebase เท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคีย์ API ที่แยกต่างหากและจํากัดสําหรับ API บางประเภท
ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร "ดึงข้อมูลรหัสการวัดของแอป Firebase นี้จากเซิร์ฟเวอร์ไม่สําเร็จ"
คีย์ API ที่เว็บแอปของคุณใช้อาจมี"ข้อจำกัด API" มีผล ในกรณีนี้ ให้ตรวจสอบว่า Firebase Management API อยู่ในรายการ API ที่อนุญาต
ฉันได้รับอีเมลหรือข้อผิดพลาดว่าคีย์ API ของฉันไม่ถูกต้อง เกิดอะไรขึ้นและฉันจะแก้ไขเรื่องนี้ได้อย่างไร
สาเหตุที่พบบ่อยที่สุดบางประการที่ทำให้คีย์ API ไม่ถูกต้องมีดังนี้
คีย์ API มี"ข้อจํากัดของคีย์ API" มีผลบังคับใช้ ซึ่งทําให้คีย์ไม่ตรงกับแอปที่พยายามใช้คีย์ ("ข้อจํากัดของแอปพลิเคชัน") หรือใช้งานกับ API ที่เรียกใช้ไม่ได้ ("ข้อจํากัดของ API")
ลบคีย์ API ออกจากโปรเจ็กต์ในคอนโซล Google Cloud แล้ว
ระบบไม่ได้สร้างคีย์ API สำหรับรหัสโปรเจ็กต์ที่แสดงในไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ของแอป
วิธีหนึ่งในการแก้ไขปัญหานี้คือรับไฟล์/ออบเจ็กต์การกําหนดค่า Firebase ของแอปเวอร์ชันอัปเดต จากนั้นแทนที่ไฟล์/ออบเจ็กต์การกําหนดค่าเก่าด้วยไฟล์/ออบเจ็กต์ที่อัปเดตใหม่ ก่อนที่จะส่งไฟล์การกําหนดค่าให้ดาวน์โหลดหรือแสดงออบเจ็กต์การกําหนดค่าในคอนโซล Firebase จะตรวจสอบว่าคีย์ API ที่แสดงตรงกับแอป