Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งจะช่วยให้คุณสร้างเนื้อหาริชมีเดียในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด Exabyte ที่มีความพร้อมใช้งานสูงและข้อมูลซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัยจากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรง ซึ่งจัดการกับเครือข่ายที่สัญญาณขาดหายไปได้อย่างง่ายดาย
ก่อนเริ่มต้น
โปรดอ่านคู่มือเริ่มต้นใช้งานสำหรับแอปบนแพลตฟอร์ม Apple ให้เสร็จสมบูรณ์ หากยังไม่ได้ดำเนินการ ซึ่งรวมถึงเนื้อหาต่อไปนี้
การสร้างโปรเจ็กต์ Firebase
การลงทะเบียนแอปแพลตฟอร์ม Apple กับโปรเจ็กต์ และเชื่อมต่อแอปกับ Firebase ด้วยการเพิ่มไลบรารี Firebase และไฟล์การกําหนดค่า Firebase (
GoogleService-Info.plist
) ลงในแอป
ตรวจสอบว่าโปรเจ็กต์ Firebase ใช้แพ็กเกจราคาแบบจ่ายเมื่อใช้ของ Blaze หากเพิ่งเริ่มใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับเครดิตมูลค่า$300 หรือไม่
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
จากแผงการนำทางของFirebaseคอนโซล ให้เลือกพื้นที่เก็บข้อมูล
หากโปรเจ็กต์ของคุณยังไม่ใช้แพ็กเกจราคาแบบจ่ายตามการใช้งานของ Blaze ระบบจะแจ้งให้อัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น
ที่เก็บข้อมูลใน
,US-CENTRAL1
และUS-EAST1
สามารถใช้ระดับ"ฟรีตลอด" สำหรับ Google Cloud Storage ส่วนที่เก็บข้อมูลในสถานที่อื่นๆ ทั้งหมดจะใช้ราคาและการใช้งานGoogle Cloud StorageUS-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 แล้วไปที่ไฟล์ > เพิ่มแพ็กเกจ
- เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase SDK สำหรับแพลตฟอร์ม Apple ดังนี้
- เลือกคลัง Cloud Storage
- เพิ่ม Flag
-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; // ...
กำหนดค่า
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
struct โดยใช้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 ที่มีผู้ใช้ที่ตรวจสอบสิทธิ์แล้วหลายคนในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการเก็บข้อมูลของผู้ใช้ไว้ใกล้ๆ ผู้ใช้ เช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลของผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
Use Case ที่ 2 จะมีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน เช่น คุณอาจตั้งค่าที่เก็บข้อมูลระดับภูมิภาคหรือหลายภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่เข้าถึงบ่อย และที่เก็บข้อมูล Nearline หรือ Coldline ที่เก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย
ไม่ว่าในกรณีใด คุณจะต้องใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ
Use Case ที่สามจะมีประโยชน์หากคุณกำลังสร้างแอป เช่น 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 แดชบอร์ดการใช้งานเพื่อดูข้อมูลการใช้งานโดยละเอียดได้อีกด้วย