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

Cloud Storage for Firebase ช่วยให้คุณสามารถอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น เป็นรูปภาพและวิดีโอ ซึ่งจะช่วยให้คุณสามารถสร้างเนื้อหาสื่อสมบูรณ์ลงใน แอป ข้อมูลของคุณจะเก็บไว้ใน ที่เก็บข้อมูล Google Cloud Storage — โซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด Exabytes ที่มีความพร้อมใช้งานสูงและใช้ได้ทั่วโลก การทำซ้ำ 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 คุณจะทำสิ่งต่อไปนี้ได้ สร้างที่เก็บข้อมูลหลายรายการ โดยแต่ละที่เก็บข้อมูลมีของตัวเอง location

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

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

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

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

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

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

  1. เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ไฟล์ > เพิ่มแพ็กเกจ
  2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase SDK สําหรับแพลตฟอร์ม 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อ้างอิงกัน

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

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

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

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 ซึ่งรวมอยู่ใน SDK ของ Google Cloud

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"];
    

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