เริ่มต้นใช้งาน Cloud Storage บน Android

Cloud Storage for Firebase ให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น เป็นรูปภาพและวิดีโอ ซึ่งจะช่วยให้คุณสามารถสร้างเนื้อหาสื่อสมบูรณ์ลงใน แอป ข้อมูลของคุณจะเก็บไว้ใน ที่เก็บข้อมูล Google Cloud Storage — โซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด Exabytes ที่มีความพร้อมใช้งานสูงและใช้ได้ทั่วโลก การทำซ้ำ Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัย ได้โดยตรงจากโทรศัพท์มือถือและเว็บเบราว์เซอร์ ทำให้ต้องจัดการกับเครือข่ายที่ขาดหายเป็นช่วงๆ ความสะดวก

ข้อกำหนดเบื้องต้น

หากคุณยังไม่ได้ดำเนินการ เพิ่ม Firebase ลงในโปรเจ็กต์ Android

สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น

  1. เลือกพื้นที่เก็บข้อมูลจากแผงการนำทางของคอนโซล Firebase แล้วคลิกเริ่มต้นใช้งาน

  2. ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยให้กับข้อมูล Cloud Storage โดยใช้การรักษาความปลอดภัย กฎ ระหว่างการพัฒนา โปรดพิจารณา การตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ

  3. เลือกสถานที่ตั้งเป็นค่าเริ่มต้น ที่เก็บข้อมูล Cloud Storage

    • การตั้งค่าตำแหน่งนี้เป็นของโปรเจ็กต์ ตำแหน่งทรัพยากรเริ่มต้นของ Google Cloud Platform (GCP) โปรดทราบว่าตำแหน่งที่ตั้งนี้จะใช้สำหรับบริการ GCP ในโปรเจ็กต์ของคุณ ที่ต้องการการตั้งค่าตำแหน่งโดยเฉพาะอย่างยิ่ง ฐานข้อมูล Cloud Firestore และ แอป App Engine (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)

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

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

  4. คลิกเสร็จสิ้น

ตั้งค่าการเข้าถึงแบบสาธารณะ

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

ซึ่งทำให้ Cloud Storage สามารถเปิดให้ทุกคนได้ แม้ผู้ที่ไม่ได้ใช้ ดังนั้น โปรดจำกัด Cloud Storage อีกครั้งเมื่อตั้งค่า การตรวจสอบสิทธิ์

เพิ่ม Cloud Storage SDK ลงในแอป

ในไฟล์ Gradle ของโมดูล (ระดับแอป) (ปกติ <project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) เพิ่มทรัพยากร Dependency สำหรับไลบรารี Cloud Storage สำหรับ Android เราขอแนะนำให้ใช้ BoM ของ Firebase Android เพื่อควบคุมการกำหนดเวอร์ชันไลบรารี

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.2"))

    // 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 เวอร์ชันที่เข้ากันได้เสมอ

(ทางเลือก) เพิ่มทรัพยากร Dependency ของไลบรารี Firebase โดยไม่ต้องใช้ BoM

หากเลือกไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชัน ในบรรทัดทรัพยากร Dependency

โปรดทราบว่าหากคุณใช้ไลบรารี 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:21.0.0")
}
หากกำลังมองหาโมดูลไลบรารีสำหรับ Kotlin โดยเฉพาะ จะเริ่มต้นใน ตุลาคม 2023 (Firebase BoM 32.5.0) ทั้งนักพัฒนาซอฟต์แวร์ Kotlin และ Java สามารถ ขึ้นอยู่กับโมดูลไลบรารีหลัก (ดูรายละเอียดได้ที่ คําถามที่พบบ่อยเกี่ยวกับโครงการริเริ่มนี้)

ตั้งค่า Cloud Storage

ขั้นตอนแรกในการเข้าถึงที่เก็บข้อมูล Cloud Storage คือการสร้าง อินสแตนซ์ของ FirebaseStorage:

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

คุณเริ่มใช้ Cloud Storage แล้ว

ขั้นแรก โปรดดูวิธีสร้าง Cloud Storage ข้อมูลอ้างอิง

การตั้งค่าขั้นสูง

กรณีการใช้งานบางส่วนที่ต้องมีการตั้งค่าเพิ่มเติมมีดังนี้

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

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

ในกรณีการใช้งานทั้งสอง คุณควรทำดังนี้ ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

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

ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

หากคุณต้องการใช้ที่เก็บข้อมูล 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");

ขั้นตอนถัดไป