Catch up on highlights from Firebase at Google I/O 2023. Learn more

เริ่มต้นใช้งาน Cloud Storage บนแพลตฟอร์ม Apple

Cloud Storage for Firebase ให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ในแอปของคุณได้ ข้อมูลของคุณจัดเก็บไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่จัดเก็บอ็อบเจ็กต์ขนาดเอกซะไบต์ที่มีความพร้อมใช้งานสูงและสำรองทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัยโดยตรงจากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์ จัดการเครือข่ายขาดๆ หายๆ ได้อย่างง่ายดาย

ข้อกำหนดเบื้องต้น

  1. ติดตั้ง Firebase SDK
  2. เพิ่มแอปของคุณในโครงการ Firebase ใน คอนโซล Firebase

สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น

  1. จากบานหน้าต่างการนำทางของ คอนโซล Firebase เลือก ที่เก็บข้อมูล จากนั้นคลิก เริ่มต้น

  2. ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยข้อมูล Cloud Storage ของคุณโดยใช้กฎความปลอดภัย ในระหว่างการพัฒนา ให้พิจารณา ตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ

  3. เลือก ตำแหน่ง สำหรับที่ฝากข้อมูล Cloud Storage เริ่มต้นของคุณ

    • การตั้งค่าตำแหน่งนี้เป็น ตำแหน่งทรัพยากรเริ่มต้นของ Google Cloud Platform (GCP) ในโครงการของคุณ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโครงการของคุณที่ต้องการการตั้งค่าตำแหน่ง โดยเฉพาะฐานข้อมูล Cloud Firestore และแอป App Engine ของคุณ (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)

    • หากคุณไม่สามารถเลือกตำแหน่งได้ แสดงว่าโครงการของคุณมีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว มีการตั้งค่าระหว่างการสร้างโครงการหรือเมื่อตั้งค่าบริการอื่นที่ต้องมีการตั้งค่าตำแหน่ง

    หากคุณใช้แผน Blaze คุณสามารถ สร้างที่เก็บข้อมูลได้หลายที่ โดยแต่ละที่จะมี ที่ตั้ง ของตัวเอง

  4. คลิก เสร็จสิ้น

ตั้งค่าการเข้าถึงแบบสาธารณะ

Cloud Storage for Firebase มีภาษาของกฎการประกาศที่ช่วยให้คุณกำหนดได้ว่าข้อมูลของคุณควรมีโครงสร้างอย่างไร ควรทำดัชนีอย่างไร และเมื่อใดที่สามารถอ่านและเขียนข้อมูลของคุณได้ ตามค่าเริ่มต้น การเข้าถึงเพื่ออ่านและเขียนไปยัง Cloud Storage จะถูกจำกัด ดังนั้นเฉพาะผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้นที่สามารถอ่านหรือเขียนข้อมูลได้ ในการเริ่มต้นโดยไม่ต้องตั้งค่า การรับรองความถูกต้อง คุณสามารถ กำหนดค่ากฎของคุณสำหรับการเข้าถึงแบบสาธารณะ

ซึ่งจะทำให้ Cloud Storage เปิดสำหรับทุกคน แม้แต่คนที่ไม่ได้ใช้แอปของคุณ ดังนั้นอย่าลืมจำกัด Cloud Storage ของคุณอีกครั้งเมื่อคุณตั้งค่าการตรวจสอบสิทธิ์

เพิ่มที่เก็บข้อมูลบนคลาวด์ในแอปของคุณ

ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการอ้างอิง Firebase

  1. ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Packages
  2. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. เลือกห้องสมุด Cloud Storage
  5. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการอ้างอิงของคุณโดยอัตโนมัติในเบื้องหลัง

ตั้งค่าที่เก็บข้อมูลบนคลาวด์

คุณต้องเริ่มต้น Firebase ก่อนที่จะสร้างหรือใช้การอ้างอิง Firebase หากคุณได้ทำสิ่งนี้กับฟีเจอร์ Firebase อื่นแล้ว คุณสามารถข้ามขั้นตอนนี้ได้

  1. นำเข้าโมดูล FirebaseCore ใน UIApplicationDelegate ของคุณ รวมถึง โมดูล Firebase อื่นๆ ที่ตัวแทนแอปของคุณใช้ ตัวอย่างเช่น หากต้องการใช้ Cloud Firestore และการรับรองความถูกต้อง:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    สวิฟต์

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    วัตถุประสงค์-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. กำหนดค่าอินสแตนซ์ที่ใช้ร่วมกันของ FirebaseApp ใน application(_:didFinishLaunchingWithOptions:) วิธีการ:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    สวิฟต์

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. หากคุณใช้ SwiftUI คุณต้องสร้างตัวแทนแอปพลิเคชันและแนบกับโครงสร้าง App ของคุณผ่าน UIApplicationDelegateAdaptor หรือ NSApplicationDelegateAdaptor คุณต้องปิดใช้งานการ swizzling ของผู้รับมอบสิทธิ์แอปด้วย สำหรับข้อมูลเพิ่มเติม โปรดดู คำแนะนำ SwiftUI

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. รับการอ้างอิงถึงบริการ Cloud Storage โดยใช้แอป Firebase เริ่มต้น:

    สวิฟต์

    let storage = Storage.storage()
    

    วัตถุประสงค์-C

    FIRStorage *storage = [FIRStorage storage];
    

คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว!

ก่อนอื่น มาเรียนรู้วิธี สร้างข้อมูลอ้างอิง Cloud Storage

การตั้งค่าขั้นสูง

มีกรณีการใช้งานบางอย่างที่ต้องตั้งค่าเพิ่มเติม:

กรณีการใช้งานแรกนั้นสมบูรณ์แบบหากคุณมีผู้ใช้ทั่วโลก และต้องการจัดเก็บข้อมูลไว้ใกล้กับพวกเขา ตัวอย่างเช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาแฝง

กรณีการใช้งานที่สองจะมีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าบัคเก็ตแบบหลายภูมิภาคหรือหลายภูมิภาคที่เก็บรูปภาพหรือเนื้อหาที่เข้าถึงบ่อยอื่นๆ และบัคเก็ตแบบ Nearline หรือ Coldline ที่เก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย

ในกรณีการใช้งานเหล่านี้ คุณจะต้องการ ใช้ที่เก็บข้อมูล Cloud Storage หลายที่

กรณีการใช้งานที่สามจะมีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งทำให้ผู้ใช้มีหลายบัญชีที่เข้าสู่ระบบ (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถ ใช้อินสแตนซ์แอป Firebase ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์แต่ละบัญชีเพิ่มเติมได้

ใช้ที่เก็บข้อมูลบนคลาวด์หลายที่

หากคุณต้องการใช้บัคเก็ต Cloud Storage อื่นนอกเหนือจากค่าเริ่มต้นที่ให้ไว้ด้านบน หรือใช้บัคเก็ต Cloud Storage หลายตัวในแอปเดียว คุณสามารถสร้างอินสแตนซ์ของ FIRStorage ที่อ้างอิงบัคเก็ตที่คุณกำหนดเองได้:

สวิฟต์

// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

วัตถุประสงค์-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://<your-cloud-storage-bucket>

คุณสามารถค้นหาหมายเลขโปรเจ็กต์ของคุณตามที่อธิบายไว้ใน บทนำเกี่ยวกับโปรเจ็กต์ Firebase

การดำเนินการนี้ไม่มีผลกับบัคเก็ตที่สร้างขึ้นใหม่ เนื่องจากมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นที่อนุญาต Firebase นี่เป็นมาตรการชั่วคราวและจะดำเนินการโดยอัตโนมัติในอนาคต

ใช้แอป Firebase ที่กำหนดเอง

หากคุณกำลังสร้างแอปที่ซับซ้อนขึ้นโดยใช้ FirebaseApp ที่กำหนดเอง คุณสามารถสร้างอินสแตนซ์ของ Storage ที่เริ่มต้นจากแอปนั้นได้:

สวิฟต์

// 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")
    

วัตถุประสงค์-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"];
    

ขั้นตอนถัดไป