Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

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

Cloud Storage for Firebase ให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ลงในแอปของคุณได้ ข้อมูลของคุณจัดเก็บไว้ในบัคเก็ต Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่จัดเก็บอ็อบเจ็กต์ขนาดเอกซะไบต์ที่มีความพร้อมใช้งานสูงและมีความซ้ำซ้อนทั่วโลก 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 คุณสามารถ สร้างที่เก็บข้อมูลได้หลาย อัน โดยแต่ละอันมี ตำแหน่ง ของตัวเอง

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

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

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 เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.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.1.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.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.1.0'
}

ตั้งค่าที่เก็บข้อมูลบนคลาวด์

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

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin+KTX

storage = Firebase.storage

คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว!

ก่อนอื่น มาเรียนรู้วิธี สร้างข้อมูลอ้างอิง Cloud Storage

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

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

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

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

ในกรณีการใช้งานเหล่านี้ คุณจะต้อง ใช้ที่เก็บข้อมูล Cloud Storage หลายที่

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

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

หากคุณต้องการใช้ที่เก็บข้อมูล Cloud Storage นอกเหนือจากค่าเริ่มต้นที่ให้ไว้ข้างต้น หรือใช้ที่เก็บข้อมูล Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์ของ FirebaseStorage ที่อ้างอิงที่เก็บข้อมูลที่กำหนดเองของคุณ:

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("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 ที่เริ่มต้นด้วยแอปนั้นได้:

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");

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")

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