Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาริชมีเดียลงในแอปได้ โดยระบบจะจัดเก็บข้อมูลของคุณไว้ใน Google Cloud Storage Bucket ซึ่งเป็น โซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาดระดับ Exabyte ที่มีความพร้อมใช้งานสูงและมีการสำรองข้อมูลทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์ได้อย่างปลอดภัย และจัดการกับเครือข่ายที่ไม่เสถียรได้อย่าง ง่ายดาย
ก่อนเริ่มต้น
ตรวจสอบว่าคุณได้ทำตาม คู่มือเริ่มต้นใช้งานสำหรับแอปแพลตฟอร์ม Apple แล้ว หากยังไม่ได้ทำ ซึ่งรวมถึงสิ่งต่อไปนี้
การสร้างโปรเจ็กต์ Firebase
การลงทะเบียนแอปแพลตฟอร์ม Apple กับโปรเจ็กต์ และเชื่อมต่อแอปกับ Firebase โดยการเพิ่มไลบรารี Firebase และไฟล์การกำหนดค่า Firebase (
GoogleService-Info.plist) ลงในแอป
ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ ซึ่งเป็นข้อกำหนดที่เริ่มมีผลในเดือนตุลาคม 2024 (ดูคำถามที่พบบ่อย) หากคุณเพิ่งเริ่มใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับ เครดิต$300 หรือไม่
สร้าง Bucket เริ่มต้นCloud Storage
เลือกพื้นที่เก็บข้อมูล จากแผงการนำทางของFirebaseคอนโซล
หากโปรเจ็กต์ของคุณยังไม่ได้ใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ ระบบจะแจ้งให้คุณอัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือก ตำแหน่ง ของ Bucket เริ่มต้น
Bucket ใน
,US-CENTRAL1 และUS-EAST1 สามารถใช้ประโยชน์จากระดับ "ใช้งานฟรีตลอดไป" สำหรับ Google Cloud Storage ได้ ส่วน Bucket ในตำแหน่งอื่นๆ ทั้งหมดจะเป็นไปตาม Google Cloud Storageราคาและการใช้งานUS-WEST1คุณสามารถสร้าง Bucket หลายรายการในภายหลังได้ โดยแต่ละรายการจะมีตำแหน่งของตัวเอง
กำหนดค่า Firebase Security Rules สำหรับ Bucket เริ่มต้น ในระหว่างการพัฒนา ให้พิจารณา ตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
ตอนนี้คุณจะเห็น Bucket ใน
Cloud Storage แท็บไฟล์
ของคอนโซลFirebase รูปแบบชื่อ Bucket เริ่มต้นคือ
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ลงในส่วน 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 App เริ่มต้น
ตรวจสอบว่าไฟล์การกำหนดค่า Firebase (
GoogleService-Info.plist) ในฐานของโค้ดของแอป ได้รับการอัปเดตด้วยชื่อ Bucket เริ่มต้นCloud Storage แล้วใช้ไฟล์การกำหนดค่าที่ดาวน์โหลดนี้เพื่อ แทนที่ ไฟล์
GoogleService-Info.plistที่มีอยู่ในรากของโปรเจ็กต์ Xcode หากได้รับข้อความแจ้ง ให้เลือกเพิ่มไฟล์การกำหนดค่าลงในเป้าหมายทั้งหมดตรวจสอบว่าคุณมีเฉพาะไฟล์การกำหนดค่าที่ดาวน์โหลดล่าสุดนี้ในแอป และชื่อไฟล์ไม่มีอักขระเพิ่มเติมต่อท้าย เช่น
(2)
รับการอ้างอิงไปยังบริการ Cloud Storage โดยใช้ Firebase App เริ่มต้น ดังนี้
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 Bucket ใน หลายภูมิภาคทางภูมิศาสตร์
- การใช้ Cloud Storage Bucket ใน คลาสพื้นที่เก็บข้อมูลต่างๆ
- การใช้ Cloud Storage Bucket กับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการจัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ เช่น คุณสามารถสร้าง Bucket ในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน เช่น คุณสามารถตั้งค่า Bucket แบบหลายภูมิภาคหรือแบบภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และ Bucket แบบ Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่มีการเข้าถึงไม่บ่อย
ในกรณีการใช้งานเหล่านี้ คุณจะต้องใช้ Bucket หลายรายการCloud Storage
กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งอนุญาตให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชี (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถใช้อินสแตนซ์ Firebase App ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชีได้
ใช้ Bucket หลายรายการCloud Storage
หากต้องการใช้ Bucket ของ Cloud Storage อื่นนอกเหนือจาก Bucket เริ่มต้นที่ระบุไว้ข้างต้น
หรือใช้ Bucket ของ Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์
ของ FIRStorage ที่อ้างอิง Bucket ที่กำหนดเองได้ ดังนี้
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"];
การทำงานกับ Bucket ที่นำเข้า
เมื่อนำเข้า 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
การดำเนินการนี้จะไม่ส่งผลต่อ Bucket ที่สร้างขึ้นใหม่ เนื่องจาก Bucket เหล่านั้นมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นเป็นอนุญาต Firebase นี่เป็นมาตรการชั่วคราวและระบบจะดำเนินการโดยอัตโนมัติในอนาคต
ใช้ Firebase App ที่กำหนดเอง
หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ 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 เพื่อช่วยให้มั่นใจว่าเฉพาะ แอปของคุณเท่านั้นที่จะเข้าถึง Bucket พื้นที่เก็บข้อมูลได้
ตั้งค่า การแจ้งเตือน งบประมาณ สำหรับโปรเจ็กต์ในคอนโซล Google Cloud
ตรวจสอบแดชบอร์ด การใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังไปที่แดชบอร์ดCloud Storage การใช้งาน เพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้ด้วย
ตรวจสอบรายการตรวจสอบการเปิดตัว Firebase