Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ลงในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ระดับเอ็กซะไบต์ที่มีความพร้อมใช้งานสูงและความซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัย จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรง รวมถึงจัดการเครือข่ายที่ไม่เสถียรได้อย่างง่ายดาย
ก่อนเริ่มต้น
- หากยังไม่ได้ดำเนินการ โปรดตรวจสอบว่าคุณได้ทำตามคู่มือการเริ่มต้นใช้งานสำหรับแอปแพลตฟอร์ม Apple แล้ว ซึ่งรวมถึงเนื้อหาต่อไปนี้ - การสร้างโปรเจ็กต์ Firebase 
- ลงทะเบียนแอปแพลตฟอร์ม Apple กับโปรเจ็กต์ และเชื่อมต่อแอปกับ Firebase โดยการเพิ่มไลบรารี Firebase และ ไฟล์กำหนดค่า Firebase ( - GoogleService-Info.plist) ลงในแอป
 
- ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายตามการใช้งานจริง ซึ่งเป็นข้อกำหนดที่เริ่มใช้ในเดือนตุลาคม 2024 (ดูคำถามที่พบบ่อย) หากเพิ่งเริ่มใช้ Firebase และ Google Cloud โปรดตรวจสอบว่าคุณมีสิทธิ์รับเครดิต$300 หรือไม่ 
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
- เลือกพื้นที่เก็บข้อมูลจากแผงการนำทางของคอนโซล Firebase - หากโปรเจ็กต์ของคุณยังไม่ได้ใช้แพ็กเกจราคา Blaze แบบจ่ายตามการใช้งาน ระบบจะแจ้งให้คุณอัปเกรดโปรเจ็กต์ 
- คลิกเริ่มต้นใช้งาน 
- เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น - ที่เก็บข้อมูลใน - US-CENTRAL1- US-EAST1- 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 ลงในแอป
ใช้ Swift Package Manager เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Firebase
- เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่File > Add Packages
- เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase Apple Platforms SDK ดังนี้
- เลือกCloud Storage คลัง
- เพิ่มแฟล็ก -ObjCลงในส่วนแฟล็ก Linker อื่นๆ ของการตั้งค่าบิลด์ของเป้าหมาย
- เมื่อเสร็จแล้ว Xcode จะเริ่มจับคู่ข้อมูลและดาวน์โหลดทรัพยากร Dependency ในเบื้องหลังโดยอัตโนมัติ
https://github.com/firebase/firebase-ios-sdk.git
ตั้งค่า Cloud Storage ในแอป
- เริ่มต้น Firebase ก่อนที่จะสร้างหรือใช้การอ้างอิง Firebase - คุณอาจทำขั้นตอนนี้ไปแล้วหากตั้งค่าผลิตภัณฑ์ Firebase อื่นไว้แล้ว แต่ต้องตรวจสอบว่าได้เพิ่มไลบรารี - FirebaseStorageลงในรายการการนำเข้า- นำเข้าโมดูล - FirebaseCoreและโมดูล- FirebaseStorageใน- UIApplicationDelegateนอกจากนี้ เราขอแนะนำให้เพิ่ม- FirebaseAuth- SwiftUI- import SwiftUI import FirebaseCore import FirebaseStorage import FirebaseAuth // ...- Swift- import FirebaseCore import FirebaseStorage import FirebaseAuth // ...- Objective-C- @import FirebaseCore; @import FirebaseStorage; @import FirebaseAuth; // ...
- กำหนดค่า - FirebaseAppอินสแตนซ์ที่แชร์ในเมธอด- application(_:didFinishLaunchingWithOptions:)ของตัวแทนแอป- SwiftUI- // Use Firebase library to configure APIs FirebaseApp.configure()- Swift- // Use Firebase library to configure APIs FirebaseApp.configure()- Objective-C- // Use Firebase library to configure APIs [FIRApp configure];
- (SwiftUI เท่านั้น) สร้างตัวแทนแอปพลิเคชันและแนบไปกับโครงสร้าง - Appโดยใช้- UIApplicationDelegateAdaptorหรือ- NSApplicationDelegateAdaptorนอกจากนี้ คุณยังต้องปิดใช้การสลับแทนของตัวแทนแอปด้วย ดูข้อมูลเพิ่มเติมได้ที่วิธีการสำหรับ SwiftUI- SwiftUI- @main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
 
- รับการอ้างอิงถึงCloud Storageบริการโดยใช้แอป Firebase เริ่มต้น - ตรวจสอบว่าไฟล์การกำหนดค่า Firebase ( - GoogleService-Info.plist) ใน โค้ดเบสของแอปได้รับการอัปเดตด้วยชื่อของCloud Storage ที่เก็บข้อมูลเริ่มต้น
- ใช้ไฟล์การกำหนดค่าที่ดาวน์โหลดนี้เพื่อแทนที่ไฟล์ - GoogleService-Info.plistที่มีอยู่ ในรูทของโปรเจ็กต์ Xcode หากได้รับข้อความแจ้ง ให้เลือกเพิ่มไฟล์กำหนดค่าไปยังเป้าหมายทั้งหมด- ตรวจสอบว่าคุณมีเฉพาะไฟล์การกำหนดค่าที่ดาวน์โหลดล่าสุดนี้ ในแอป และชื่อไฟล์ไม่มีอักขระต่อท้ายเพิ่มเติม เช่น - (2)
 
- รับการอ้างอิงถึงCloud Storageบริการโดยใช้แอป Firebase เริ่มต้น - Swift- let storage = Storage.storage() - // Alternatively, explicitly specify the bucket name URL. storage = Storage.storage(url:"gs://BUCKET_NAME") - Objective-C- FIRStorage *storage = [FIRStorage storage]; - // Alternatively, explicitly specify the bucket name URL. // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"]; 
 
คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว
ขั้นตอนถัดไป ดูวิธี สร้างCloud Storageข้อมูลอ้างอิง
การตั้งค่าขั้นสูง
กรณีการใช้งานบางอย่างต้องมีการตั้งค่าเพิ่มเติม ดังนี้
- การใช้Cloud Storageที่เก็บข้อมูลในหลายภูมิภาค
- การใช้Cloud Storageที่เก็บข้อมูลใน คลาสพื้นที่เก็บข้อมูลต่างๆ
- การใช้Cloud Storage บัคเก็ตกับผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการ จัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ เช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าที่เก็บข้อมูลแบบหลายภูมิภาคหรือระดับภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่เข้าถึงบ่อย และที่เก็บข้อมูล Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย
ในกรณีการใช้งานเหล่านี้ คุณจะต้องใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ
กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่ง อนุญาตให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชี (เช่น บัญชีส่วนตัว และบัญชีงาน) คุณสามารถใช้แอป Firebase ที่กำหนดเอง อินสแตนซ์เพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชี
ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ
หากต้องการใช้Cloud Storageที่เก็บข้อมูลอื่นนอกเหนือจากค่าเริ่มต้นที่ระบุไว้ข้างต้น
หรือใช้ที่เก็บข้อมูล Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์
ของ FIRStorage ที่อ้างอิงที่เก็บข้อมูลที่กำหนดเองได้โดยทำดังนี้
Swift
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
Objective-C
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"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 ที่กำหนดเอง คุณสามารถ
สร้างอินสแตนซ์ของ Storage ที่เริ่มต้นด้วยแอปนั้นได้โดยทำดังนี้
Swift
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
Objective-C
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
ขั้นตอนถัดไป
- เตรียมพร้อมเปิดตัวแอป - เปิดใช้ App Check เพื่อช่วยให้มั่นใจว่ามีเพียง แอปของคุณเท่านั้นที่เข้าถึงที่เก็บข้อมูลได้ 
- ตั้งค่าการแจ้งเตือน งบประมาณ สำหรับโปรเจ็กต์ในGoogle Cloudคอนโซล 
- ตรวจสอบแดชบอร์ดการใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังไปที่Cloud Storageแดชบอร์ดการใช้งานเพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้ด้วย