หากแอป 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