หากแอป Android ใช้ Cloud API ของ Firebase ML ก่อนเปิดตัว เป็นเวอร์ชันที่ใช้งานจริง คุณควรดำเนินการเพิ่มเติมเพื่อป้องกันไม่ให้ การเข้าถึง API ที่ไม่ได้รับอนุญาต
สำหรับแอปเวอร์ชันที่ใช้งานจริง คุณจะต้องตรวจสอบว่ามีเพียงไคลเอ็นต์ที่ตรวจสอบสิทธิ์แล้วเท่านั้นที่จะทำสิ่งต่อไปนี้ได้ เข้าถึงบริการระบบคลาวด์ (โปรดทราบว่าเฉพาะอุปกรณ์ที่ไม่ผ่านการรูทเท่านั้นที่สามารถตรวจสอบสิทธิ์โดยใช้ วิธีการที่อธิบาย)
จากนั้นคุณจะสร้างคีย์ API สำหรับแก้ไขข้อบกพร่องเท่านั้นซึ่งคุณใช้เพื่ออำนวยความสะดวกได้ ในระหว่างการทดสอบและการพัฒนา
1. ลงทะเบียนแอปเวอร์ชันที่ใช้งานจริงด้วย Firebase
ขั้นแรก ให้ลงทะเบียนแอปเวอร์ชันที่ใช้งานจริงกับ Firebase
ตรวจสอบว่าคุณมีลายเซ็น SHA-1 ของแอป โปรดดู การตรวจสอบสิทธิ์ลูกค้า เพื่อเรียนรู้วิธีการ
ไปที่Firebase จากนั้นเลือกแท็บการตั้งค่า
การตั้งค่าโปรเจ็กต์ในคอนโซลเลื่อนลงไปที่การ์ดแอปของคุณ แล้วเลือกแอป Android
เพิ่มลายเซ็น SHA-1 ของแอปลงในข้อมูลของแอป
2. จำกัดขอบเขตของคีย์ API
ถัดไป ให้กำหนดค่าคีย์ API ที่มีอยู่เพื่อไม่ให้สิทธิ์การเข้าถึง Cloud Vision API:
เปิดหน้าข้อมูลเข้าสู่ระบบของ คอนโซล Google Cloud เมื่อได้รับข้อความแจ้ง ให้เลือกโปรเจ็กต์
สำหรับคีย์ API ที่มีอยู่ในรายการ ให้เปิดมุมมองการแก้ไข
ในส่วนการจำกัด API ให้เลือกจำกัดคีย์ แล้วเพิ่มลงใน แสดงรายการ API ทั้งหมดที่คุณต้องการให้คีย์ API เข้าถึงได้ ตรวจสอบว่า เพื่อไม่รวม Cloud Vision API
เมื่อคุณกำหนดค่าข้อจำกัด API ของคีย์ API คุณจะ ประกาศ API ที่คีย์ดังกล่าวมีสิทธิ์เข้าถึง โดยค่าเริ่มต้น เมื่อ API ข้อจำกัดมีการเลือกไม่จำกัดคีย์ไว้ คุณสามารถใช้คีย์ API ได้ ใช้ในการเข้าถึง API ทั้งหมดที่เปิดใช้สำหรับโปรเจ็กต์
ตอนนี้คีย์ API ที่มีอยู่จะไม่ให้สิทธิ์เข้าถึงบริการ Cloud ML แต่ คีย์จะยังคงทำงานสำหรับ API ที่คุณเพิ่มในข้อจำกัด API รายการ
โปรดทราบว่าหากเปิดใช้ API เพิ่มเติมในอนาคต คุณต้องเพิ่ม API เหล่านั้นลงในรายการข้อจํากัดของ API สําหรับคีย์ API ที่เกี่ยวข้อง
3. สร้างและใช้คีย์ API สำหรับการแก้ไขข้อบกพร่องเท่านั้น
สุดท้าย ให้สร้างคีย์ API ใหม่เพื่อใช้สำหรับการพัฒนาเท่านั้น Firebase ML สามารถ ใช้คีย์ API นี้เพื่อเข้าถึงบริการของ Google Cloud ในสภาพแวดล้อมที่แอป การตรวจสอบสิทธิ์เป็นไปไม่ได้ เช่น เมื่อเรียกใช้ในโปรแกรมจำลอง
สร้างคีย์ API ใหม่ที่จะใช้ในการพัฒนา
เปิดหน้าข้อมูลเข้าสู่ระบบของ คอนโซล Google Cloud เลือกโปรเจ็กต์เมื่อได้รับข้อความแจ้ง
คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API และบันทึก API ใหม่ คีย์นี้ทำให้แอปที่ไม่ได้รับการตรวจสอบสิทธิ์เข้าถึง API ได้ ดังนั้น เก็บคีย์นี้เป็นความลับ
เพื่อให้มั่นใจว่าคีย์ API การแก้ไขข้อบกพร่องใหม่ไม่ได้รั่วไหลจากแอปที่เผยแพร่แล้ว ระบุคีย์ API การแก้ไขข้อบกพร่องในไฟล์ Manifest ของ Android ที่ใช้เพื่อแก้ไขข้อบกพร่องเท่านั้น งานสร้าง:
หากยังไม่มีไฟล์ Manifest สำหรับการแก้ไขข้อบกพร่อง ให้สร้างโดยคลิกไฟล์ > ใหม่ > อื่นๆ > ไฟล์ Manifest ของ Android แล้วเลือก
debug
จากชุดแหล่งที่มาเป้าหมายเพิ่มการประกาศต่อไปนี้ในไฟล์ Manifest ของการแก้ไขข้อบกพร่อง
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="your-debug-api-key" /> </application>
ในแอป ให้กำหนดค่า Firebase ML ให้ใช้การจับคู่ลายนิ้วมือของใบรับรองเพื่อ ตรวจสอบสิทธิ์ไคลเอ็นต์ของคุณในเวอร์ชันที่ใช้งานจริงและใช้คีย์ API ในการแก้ไขข้อบกพร่อง เฉพาะในบิลด์การแก้ไขข้อบกพร่องเท่านั้น
Kotlin+KTX
val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder() if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch() } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f) // ... // And lastly: val options = optionsBuilder.build() FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)
Java
FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder = new FirebaseVisionCloudImageLabelerOptions.Builder(); if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch(); } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f); // ... // And lastly: FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build(); FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);
ขั้นตอนถัดไป
ดูข้อมูลเกี่ยวกับรายการตรวจสอบการเปิดตัว การเตรียมแอปให้พร้อมเปิดตัวเมื่อใช้ฟีเจอร์อื่นๆ ของ Firebase