ดูข้อมูลเกี่ยวกับการใช้และจัดการคีย์ 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 รายการ
  • สร้างแอป 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 ในช่อง apiKey

การใช้คีย์ API

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

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

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

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

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

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

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

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

การแก้ปัญหา