Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาริชมีเดียลงในแอปได้ ข้อมูลของคุณจะได้รับการจัดเก็บไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ระดับเอ็กซะไบต์ที่มีความพร้อมใช้งานสูงและความซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัย จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรง รวมถึงจัดการเครือข่ายที่ไม่เสถียรได้อย่างง่ายดาย
ก่อนเริ่มต้น
หากยังไม่ได้ดำเนินการ โปรดตรวจสอบว่าคุณได้ทำตามคู่มือการเริ่มต้นใช้งานสำหรับแอป Android แล้ว ซึ่งรวมถึงเนื้อหาต่อไปนี้
การสร้างโปรเจ็กต์ Firebase
ลงทะเบียนแอป Android กับโปรเจ็กต์ และเชื่อมต่อแอปกับ Firebase โดยเพิ่มทรัพยากร Dependency ของ Firebase ปลั๊กอินบริการของ Google และ ไฟล์กำหนดค่า Firebase (
google-services.json) ลงในแอป
ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ ซึ่งเป็นข้อกำหนดที่เริ่มใช้ในเดือนตุลาคม 2024 (ดูคำถามที่พบบ่อย) หากเพิ่งเริ่มใช้ Firebase และ Google Cloud โปรดตรวจสอบว่าคุณมีสิทธิ์รับเครดิต$300 หรือไม่
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
เลือกพื้นที่เก็บข้อมูลจากแผงการนำทางของคอนโซล Firebase
หากโปรเจ็กต์ของคุณยังไม่ได้ใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ คุณจะได้รับแจ้งให้อัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น
ที่เก็บข้อมูลใน
,US-CENTRAL1 และUS-EAST1 สามารถใช้ประโยชน์จากระดับ"ใช้งานฟรีเสมอ" สำหรับ Google Cloud Storage ที่เก็บข้อมูลในสถานที่อื่นๆ ทั้งหมดจะใช้Google Cloud Storageการกำหนดราคาและการใช้งานUS-WEST1หากต้องการ คุณสามารถสร้างที่เก็บข้อมูลหลายรายการในภายหลังได้ โดยแต่ละรายการจะมีตำแหน่งของตัวเอง
กำหนดค่า Firebase Security Rules สำหรับที่เก็บข้อมูลเริ่มต้น ในระหว่างการพัฒนา ให้พิจารณาตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
ตอนนี้คุณดูที่เก็บข้อมูลได้แล้วในแท็บCloud Storage ไฟล์ของFirebaseคอนโซล รูปแบบชื่อที่เก็บข้อมูลเริ่มต้นคือ
PROJECT_ID.firebasestorage.app
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase มีภาษาของกฎแบบประกาศที่ช่วยให้คุณกำหนดวิธีจัดโครงสร้างข้อมูล วิธีจัดทำดัชนี และเวลาที่อ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น ระบบจะจำกัดสิทธิ์การอ่านและการเขียนใน Cloud Storage เพื่อให้เฉพาะผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เท่านั้นที่อ่านหรือเขียน ข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า Authentication คุณสามารถกำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
ซึ่งจะทำให้Cloud Storageเปิดให้ทุกคนเข้าถึงได้ แม้แต่ผู้ที่ไม่ได้ใช้แอปของคุณ ดังนั้นโปรดจำกัดCloud Storageอีกครั้งเมื่อตั้งค่าการตรวจสอบสิทธิ์
เพิ่ม Cloud Storage SDK ลงในแอป
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยมากจะเป็น<project>/<app-module>/build.gradle.kts หรือ
<project>/<app-module>/build.gradle)
ให้เพิ่มทรัพยากร Dependency สำหรับคลัง Cloud Storage สำหรับ Android เราขอแนะนำให้ใช้
Firebase Android BoM
เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.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 แต่ละรายการ ในบรรทัดทรัพยากร 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:22.0.1") }
ตั้งค่า Cloud Storage ในแอป
ตรวจสอบว่าไฟล์การกำหนดค่า Firebase (
google-services.json) ในโค้ดเบสของแอปได้รับการอัปเดตด้วยชื่อของที่เก็บข้อมูล Cloud Storage เริ่มต้นใช้ไฟล์กำหนดค่าที่ดาวน์โหลดนี้เพื่อแทนที่ไฟล์
google-services.jsonที่มีอยู่ในไดเรกทอรีโมดูล (ระดับแอป) ของแอปตรวจสอบว่าคุณมีเฉพาะไฟล์การกำหนดค่าที่ดาวน์โหลดล่าสุดนี้ใน แอป และชื่อไฟล์ไม่มีอักขระเพิ่มเติมต่อท้าย เช่น
(2)
เข้าถึง Bucket Cloud Storage โดยสร้างอินสแตนซ์ของ
FirebaseStorageดังนี้Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว
ขั้นตอนถัดไป ดูวิธี สร้างCloud Storageข้อมูลอ้างอิง
การตั้งค่าขั้นสูง
กรณีการใช้งานบางอย่างต้องมีการตั้งค่าเพิ่มเติม ดังนี้
- การใช้Cloud Storage บัคเก็ตในหลายภูมิภาค
- การใช้Cloud Storageที่เก็บข้อมูลใน คลาสพื้นที่เก็บข้อมูลต่างๆ
- การใช้Cloud Storageที่เก็บข้อมูลกับผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการ จัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ เช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่า Bucket แบบหลายภูมิภาคหรือระดับภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่เข้าถึงบ่อย และ Bucket แบบ Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย
ไม่ว่าจะใช้ในกรณีใดกรณีหนึ่งต่อไปนี้ คุณจะต้องใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ
กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่ง อนุญาตให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชี (เช่น บัญชีส่วนตัว และบัญชีงาน) คุณสามารถใช้แอป Firebase ที่กำหนดเอง อินสแตนซ์เพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชี
ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ
หากต้องการใช้Cloud Storageบักเก็ตอื่นที่ไม่ใช่บักเก็ตเริ่มต้นที่อธิบายไว้
ก่อนหน้านี้ในคู่มือนี้ หรือใช้Cloud Storageบักเก็ตหลายรายการในแอปเดียว คุณ
สามารถสร้างอินสแตนซ์ของ FirebaseStorage ที่อ้างอิงบักเก็ตที่กำหนดเองได้โดยทำดังนี้
Kotlin
// 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://BUCKET_NAME
คุณดูหมายเลขโปรเจ็กต์ได้ตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับโปรเจ็กต์ Firebase
การดำเนินการนี้จะไม่ส่งผลต่อที่เก็บข้อมูลที่สร้างขึ้นใหม่ เนื่องจากที่เก็บข้อมูลเหล่านั้นมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นให้ Firebase อยู่แล้ว นี่เป็นมาตรการชั่วคราวและจะ ดำเนินการโดยอัตโนมัติในอนาคต
ใช้แอป Firebase ที่กำหนดเอง
หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ FirebaseApp ที่กำหนดเอง คุณสามารถ
สร้างอินสแตนซ์ของ FirebaseStorage ที่เริ่มต้นด้วยแอปนั้นได้โดยทำดังนี้
Kotlin
// 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");
ขั้นตอนถัดไป
เตรียมพร้อมเปิดตัวแอป
เปิดใช้ App Check เพื่อช่วยให้มั่นใจว่ามีเพียง แอปของคุณเท่านั้นที่เข้าถึงที่เก็บข้อมูลได้
ตั้งค่าการแจ้งเตือน งบประมาณ สำหรับโปรเจ็กต์ในGoogle Cloudคอนโซล
ตรวจสอบแดชบอร์ดการใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังไปที่Cloud Storageแดชบอร์ดการใช้งานเพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้ด้วย