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 สามารถใช้ประโยชน์จาก "ใช้งานฟรีตลอดไป" ระดับ สำหรับ Google Cloud Storage บัคเก็ตในสถานที่ตั้งอื่นๆ ทั้งหมดจะเป็นไปตาม Google Cloud Storage ราคาและการใช้งานUS-WEST1คุณสามารถสร้างบัคเก็ตหลายรายการในภายหลัง โดยแต่ละบัคเก็ตจะมีสถานที่ตั้งของตัวเอง
กำหนดค่า Firebase Security Rules สำหรับบัคเก็ตเริ่มต้น ระหว่างการพัฒนา ให้พิจารณา ตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
ตอนนี้คุณสามารถดูบัคเก็ตในคอนโซล Firebase ได้แล้ว (ไปที่แท็บ
ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล >
ไฟล์)
รูปแบบชื่อบัคเก็ตเริ่มต้นคือ PROJECT_ID.firebasestorage.app
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase มีภาษาของกฎที่ประกาศไว้ซึ่งช่วยให้คุณ กำหนดวิธีจัดโครงสร้างข้อมูล วิธีจัดทำดัชนี และเวลาที่ สามารถอ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น ระบบจะจำกัดสิทธิ์อ่านและเขียนไปยัง Cloud Storage เพื่อให้เฉพาะผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้นที่อ่านหรือเขียน ข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า Authentication คุณสามารถ กำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะได้
การดำเนินการนี้จะทำให้ Cloud Storage เปิดให้ทุกคนเข้าถึงได้ แม้แต่ผู้ที่ไม่ได้ใช้ แอปของคุณ ดังนั้นโปรดอย่าลืมจำกัด Cloud Storage อีกครั้งเมื่อตั้งค่า การตรวจสอบสิทธิ์
เพิ่ม Cloud Storage ลงในแอป
ใช้ Swift Package Manager เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Firebase
- เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ไฟล์ > เพิ่มแพ็กเกจ
- เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase Apple Platforms SDK ดังนี้
- เลือกไลบรารี Cloud Storage
- เพิ่มแฟล็ก
-ObjCลงในส่วน Other Linker Flags ของการตั้งค่าบิลด์ของเป้าหมาย - เมื่อเสร็จแล้ว 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; // ...กำหนดค่าอินสแตนซ์ที่แชร์ในเมธอดของผู้รับมอบสิทธิ์แอป:
FirebaseAppapplication(_: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นอกจากนี้ คุณต้องปิดใช้การสลับผู้รับมอบสิทธิ์แอปด้วย ดูข้อมูลเพิ่มเติมได้ใน วิธีการ SwiftUISwiftUI
@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 กับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการจัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ ตัวอย่างเช่น คุณสามารถสร้าง Bucket ในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่า Bucket แบบหลายภูมิภาคหรือภูมิภาคเดียวที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และ Bucket 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 การใช้งาน เพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้ด้วย
ตรวจสอบรายการตรวจสอบการเปิดตัว Firebase