Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

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

แม้ว่าคีย์ API สำหรับบริการ Firebase มีความปลอดภัยที่จะรวมในรหัสมีไม่กี่ กรณีเฉพาะ เมื่อคุณควรบังคับใช้ข้อ จำกัด สำหรับคีย์ API ของคุณ ตัวอย่างเช่น หากคุณใช้ Firebase ML, Firebase Authentication ด้วยวิธีลงชื่อเข้าใช้อีเมล/รหัสผ่าน หรือ Google Cloud API ที่เรียกเก็บเงินได้ เรียนรู้เพิ่มเติมเกี่ยวกับกรณีเหล่านี้ในภายหลังในหน้านี้

การสร้างคีย์ API

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

คีย์ API ที่สร้างโดยอัตโนมัติโดย Firebase สำหรับแอป Firebase

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

  • สร้างโครงการ Firebase> Browser key ที่สร้างโดยอัตโนมัติ
  • สร้าง Firebase iOS App> iOS key ที่สร้างโดยอัตโนมัติ
  • สร้าง Firebase Android App> Android key ที่สร้างโดยอัตโนมัติ

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

ค้นหาคีย์ API ของคุณ

คุณสามารถดูและจัดการคีย์ API ทั้งหมดของโครงการใน APIs และบริการ> ข้อมูลประจำตัว แผงในคอนโซลระบบคลาวด์ของ Google

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

  • Firebase iOS Apps - การค้นหาที่สำคัญของแอปอัตโนมัติจับคู่ API ในไฟล์ config Firebase, GoogleService-Info.plist ใน API_KEY ฟิลด์

  • Firebase Android Apps - ค้นหาคีย์ API ของแอปอัตโนมัติจับคู่ในไฟล์ config Firebase, google-services.json ใน current_key ฟิลด์

  • Firebase Web Apps - ค้นหาคีย์ API ของแอปอัตโนมัติจับคู่ในวัตถุ config ของ Firebase ใน apiKey ฟิลด์

การใช้คีย์ API

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

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

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

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

ใช้ข้อ จำกัด คีย์ API (แนะนำ)

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

กระชับโควต้าหากคุณใช้การพิสูจน์ตัวตนด้วยรหัสผ่าน

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

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

ใช้คีย์ API แบบจำกัดที่แยกจากกันสำหรับ API บางประเภท

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

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

ตัวอย่างเช่นถ้าคุณใช้ Firebase ML เมฆวิสัยทัศน์ APIs บน iOS คุณควร สร้างคีย์ API แยกต่างหาก ที่คุณใช้เฉพาะสำหรับการเข้าถึงเมฆวิสัยทัศน์ APIs

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

ใช้ปุ่มเฉพาะสภาพแวดล้อม API (แนะนำ)

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

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

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

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