Cloud Storage for Firebase ให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ในแอปของคุณได้ ข้อมูลของคุณจัดเก็บไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่จัดเก็บอ็อบเจ็กต์ขนาดเอกซะไบต์ที่มีความพร้อมใช้งานสูงและสำรองทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัยโดยตรงจากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์ จัดการเครือข่ายขาดๆ หายๆ ได้อย่างง่ายดาย
ข้อกำหนดเบื้องต้น
หากคุณยังไม่ได้ ดำเนินการ ให้เพิ่ม Firebase ในโครงการ Android ของคุณ
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
จากบานหน้าต่างการนำทางของ คอนโซล Firebase เลือก ที่เก็บข้อมูล จากนั้นคลิก เริ่มต้น
ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยข้อมูล Cloud Storage ของคุณโดยใช้กฎความปลอดภัย ในระหว่างการพัฒนา ให้พิจารณา ตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ
เลือก ตำแหน่ง สำหรับที่ฝากข้อมูล Cloud Storage เริ่มต้นของคุณ
การตั้งค่าตำแหน่งนี้เป็น ตำแหน่งทรัพยากรเริ่มต้นของ Google Cloud Platform (GCP) ในโครงการของคุณ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโครงการของคุณที่ต้องการการตั้งค่าตำแหน่ง โดยเฉพาะฐานข้อมูล Cloud Firestore และแอป App Engine ของคุณ (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)
หากคุณไม่สามารถเลือกตำแหน่งได้ แสดงว่าโครงการของคุณมีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว มีการตั้งค่าระหว่างการสร้างโครงการหรือเมื่อตั้งค่าบริการอื่นที่ต้องมีการตั้งค่าตำแหน่ง
หากคุณใช้แผน Blaze คุณสามารถ สร้างที่เก็บข้อมูลได้หลายที่ โดยแต่ละที่จะมี ที่ตั้ง ของตัวเอง
คลิก เสร็จสิ้น
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase มีภาษาของกฎการประกาศที่ช่วยให้คุณกำหนดได้ว่าข้อมูลของคุณควรมีโครงสร้างอย่างไร ควรทำดัชนีอย่างไร และเมื่อใดที่สามารถอ่านและเขียนข้อมูลของคุณได้ ตามค่าเริ่มต้น การเข้าถึงเพื่ออ่านและเขียนไปยัง Cloud Storage จะถูกจำกัด ดังนั้นเฉพาะผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้นที่สามารถอ่านหรือเขียนข้อมูลได้ ในการเริ่มต้นโดยไม่ต้องตั้งค่า การรับรองความถูกต้อง คุณสามารถ กำหนดค่ากฎของคุณสำหรับการเข้าถึงแบบสาธารณะ
ซึ่งจะทำให้ Cloud Storage เปิดสำหรับทุกคน แม้แต่คนที่ไม่ได้ใช้แอปของคุณ ดังนั้นอย่าลืมจำกัด Cloud Storage ของคุณอีกครั้งเมื่อคุณตั้งค่าการตรวจสอบสิทธิ์
เพิ่ม Cloud Storage SDK ลงในแอปของคุณ
ใน ไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ<project>/<app-module>/build.gradle
) ให้เพิ่มการพึ่งพาสำหรับไลบรารี Cloud Storage Android ขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-storage-ktx' }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุแต่ละเวอร์ชันของไลบรารี Firebase ในบรรทัดอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอป เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งทำให้แน่ใจว่าเวอร์ชันทั้งหมดเข้ากันได้
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-storage-ktx:20.2.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-storage' }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุแต่ละเวอร์ชันของไลบรารี Firebase ในบรรทัดอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอป เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งทำให้แน่ใจว่าเวอร์ชันทั้งหมดเข้ากันได้
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-storage:20.2.0' }
ตั้งค่าที่เก็บข้อมูลบนคลาวด์
ขั้นตอนแรกในการเข้าถึงที่เก็บข้อมูลบนคลาวด์ของคุณคือการสร้างอินสแตนซ์ของ FirebaseStorage
:
Kotlin+KTX
storage = Firebase.storage
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว!
ก่อนอื่น มาเรียนรู้วิธี สร้างข้อมูลอ้างอิง Cloud Storage
การตั้งค่าขั้นสูง
มีกรณีการใช้งานบางอย่างที่ต้องตั้งค่าเพิ่มเติม:
- การใช้บัคเก็ต Cloud Storage ใน หลายพื้นที่ทางภูมิศาสตร์
- การใช้บัคเก็ต Cloud Storage ใน คลาสพื้นที่เก็บข้อมูลต่างๆ
- การใช้ที่ฝากข้อมูล Cloud Storage กับผู้ใช้ที่ผ่านการรับรองความถูกต้องหลายคนในแอปเดียวกัน
กรณีการใช้งานแรกนั้นสมบูรณ์แบบหากคุณมีผู้ใช้ทั่วโลก และต้องการจัดเก็บข้อมูลไว้ใกล้กับพวกเขา ตัวอย่างเช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาแฝง
กรณีการใช้งานที่สองจะมีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าบัคเก็ตแบบหลายภูมิภาคหรือหลายภูมิภาคที่เก็บรูปภาพหรือเนื้อหาที่เข้าถึงบ่อยอื่นๆ และบัคเก็ตแบบ Nearline หรือ Coldline ที่เก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย
ในกรณีการใช้งานเหล่านี้ คุณจะต้องการ ใช้ที่เก็บข้อมูล Cloud Storage หลายที่
กรณีการใช้งานที่สามจะมีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งทำให้ผู้ใช้มีหลายบัญชีที่เข้าสู่ระบบ (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถ ใช้อินสแตนซ์แอป Firebase ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์แต่ละบัญชีเพิ่มเติมได้
ใช้ที่เก็บข้อมูลบนคลาวด์หลายที่
หากคุณต้องการใช้ที่เก็บข้อมูล Cloud Storage อื่นนอกเหนือจากค่าเริ่มต้นที่ให้ไว้ด้านบน หรือใช้ที่เก็บข้อมูล Cloud Storage หลายที่ในแอปเดียว คุณสามารถสร้างอินสแตนซ์ของ FirebaseStorage
ที่อ้างอิงที่เก็บข้อมูลที่คุณกำหนดเองได้:
Kotlin+KTX
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");
ทำงานกับบัคเก็ตที่นำเข้า
เมื่อนำเข้าที่เก็บข้อมูล Cloud Storage ที่มีอยู่ไปยัง Firebase คุณจะต้องให้สิทธิ์ Firebase ในการเข้าถึงไฟล์เหล่านี้โดยใช้เครื่องมือ gsutil
ซึ่งรวมอยู่ใน Google Cloud SDK :
gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>
คุณสามารถค้นหาหมายเลขโปรเจ็กต์ของคุณตามที่อธิบายไว้ใน บทนำเกี่ยวกับโปรเจ็กต์ Firebase
การดำเนินการนี้ไม่มีผลกับบัคเก็ตที่สร้างขึ้นใหม่ เนื่องจากมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นที่อนุญาต Firebase นี่เป็นมาตรการชั่วคราวและจะดำเนินการโดยอัตโนมัติในอนาคต
ใช้แอป Firebase ที่กำหนดเอง
หากคุณกำลังสร้างแอปที่ซับซ้อนขึ้นโดยใช้ FirebaseApp
ที่กำหนดเอง คุณสามารถสร้างอินสแตนซ์ของ FirebaseStorage
ที่เริ่มต้นจากแอปนั้นได้:
Kotlin+KTX
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
ขั้นตอนถัดไป
เตรียมเปิดตัวแอปของคุณ:
เปิดใช้งาน การตรวจสอบแอป เพื่อช่วยให้แน่ใจว่าเฉพาะแอปของคุณเท่านั้นที่สามารถเข้าถึงที่เก็บข้อมูลของคุณได้
ตั้งค่า การแจ้งเตือนงบประมาณ สำหรับโครงการของคุณใน Google Cloud Console
ตรวจสอบ แดชบอร์ด การใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมของการใช้งานโครงการของคุณในบริการต่างๆ ของ Firebase คุณยังสามารถเยี่ยมชม แดชบอร์ด การใช้งาน ที่เก็บข้อมูลบนคลาวด์ เพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติม
ตรวจสอบ รายการตรวจสอบการเปิดใช้ Firebase