เริ่มต้นใช้งาน 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 อีกครั้งเมื่อตั้งค่าการตรวจสอบสิทธิ์

เพิ่ม Cloud Storage ลงในแอป

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

  1. เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ไฟล์ > เพิ่มแพ็กเกจ
  2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK สำหรับแพลตฟอร์ม Firebase ของ Apple ดังนี้
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. เลือกไลบรารี Cloud Storage
  5. เพิ่มแฟล็ก -ObjC ลงในส่วนแฟล็ก Linker อื่นๆ ของการตั้งค่าบิลด์ของเป้าหมาย
  6. เมื่อเสร็จสิ้นแล้ว Xcode จะเริ่มแก้ปัญหาและดาวน์โหลดทรัพยากร Dependency ในเบื้องหลังโดยอัตโนมัติ

ตั้งค่า Cloud Storage

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

  1. นำเข้าโมดูล FirebaseCore ใน UIApplicationDelegate รวมถึงโมดูล Firebase อื่นๆ ที่ผู้รับมอบสิทธิ์แอปใช้ เช่น วิธีใช้ Cloud Firestore และ Authentication มีดังนี้

    SwiftUI

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

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. กำหนดค่าอินสแตนซ์ที่แชร์ของ 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];
  3. หากใช้ SwiftUI คุณต้องสร้างการมอบสิทธิ์แอปพลิเคชันและแนบการมอบสิทธิ์กับโครงสร้าง App ผ่าน UIApplicationDelegateAdaptor หรือ NSApplicationDelegateAdaptor คุณต้องปิดใช้ SWizzing ที่มอบสิทธิ์ของแอปด้วย ดูข้อมูลเพิ่มเติมได้ที่วิธีการของ 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 เริ่มต้น

    Swift

    let storage = Storage.storage()
    

    Objective-C

    FIRStorage *storage = [FIRStorage storage];
    

คุณเริ่มใช้ Cloud Storage แล้ว

โปรดดูวิธีสร้างข้อมูลอ้างอิง Cloud Storage ก่อน

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

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

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

กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าที่เก็บข้อมูลแบบหลายภูมิภาคหรือระดับภูมิภาคที่เก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และที่เก็บข้อมูลแบบใกล้เคียงหรือ 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://<your-cloud-storage-bucket>

คุณดูหมายเลขโปรเจ็กต์ได้ตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับโปรเจ็กต์ 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"];
    

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