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

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

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

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

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

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

การแก้ปัญหา