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

คีย์ API คือสตริงที่ไม่ซ้ำกันซึ่งใช้เพื่อกำหนดเส้นทางคำขอไปยัง Firebase เมื่อโต้ตอบกับ Firebase และบริการของ Google หน้านี้อธิบายถึง ข้อมูลพื้นฐานเกี่ยวกับคีย์ API รวมถึงแนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้งานและ จัดการคีย์ 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 รายการ
  • สร้างแอป Firebase ใน Apple > สร้างอัตโนมัติ iOS key รายการ
  • สร้างแอป Firebase บน Android > สร้างอัตโนมัติ Android key รายการ

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

กำลังค้นหาคีย์ API

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

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

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

  • แอป Firebase บน Android — ค้นหาคีย์ 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 โดยไคลเอ็นต์บนอุปกรณ์เคลื่อนที่/เว็บ แอปของคุณจะแสดง ไฟล์/ออบเจ็กต์การกำหนดค่า Firebase สำหรับคีย์ API ของโปรเจ็กต์ อย่างไรก็ตาม คุณสามารถ ระบุคีย์ 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 เอกสาร

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

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

การแก้ปัญหา