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.kts
หรือ <project>/<app-module>/build.gradle
) ให้เพิ่มการพึ่งพาสำหรับ Cloud Storage ไลบรารี่สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมเวอร์ชันไลบรารีdependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.8.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.3.0") }
ตั้งค่าที่เก็บข้อมูลบนคลาวด์
ขั้นตอนแรกในการเข้าถึงที่เก็บข้อมูล Cloud Storage ของคุณคือการสร้างอินสแตนซ์ของ 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 อื่นนอกเหนือจากค่าเริ่มต้นที่ระบุไว้ข้างต้น หรือใช้ที่เก็บข้อมูล 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");
ขั้นตอนถัดไป
เตรียมเปิดตัวแอปของคุณ:
เปิดใช้ App Check เพื่อช่วยให้แน่ใจว่ามีเพียงแอปของคุณเท่านั้นที่สามารถเข้าถึงที่เก็บข้อมูลของคุณได้
ตั้งค่า การแจ้งเตือนงบประมาณ สำหรับโครงการของคุณในคอนโซล Google Cloud
ตรวจสอบ แดชบอร์ด การใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ของคุณในบริการ Firebase ต่างๆ คุณยังสามารถไปที่ แดชบอร์ด การใช้งาน Cloud Storage เพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติม
ตรวจสอบ รายการตรวจสอบการเปิดตัว Firebase