Apple प्लैटफ़ॉर्म पर Cloud Storage का इस्तेमाल शुरू करना

Cloud Storage for Firebase की मदद से, यूज़र जनरेटेड कॉन्टेंट (यूजीसी) अपलोड और शेयर किया जा सकता है. जैसे, इमेज और वीडियो. इससे आपको अपने ऐप्लिकेशन में रिच मीडिया कॉन्टेंट बनाने में मदद मिलती है. आपका डेटा, Google Cloud Storage बकेट में सेव किया जाता है. यह एक एक्साबाइट स्केल ऑब्जेक्ट स्टोरेज सलूशन है. इसमें डेटा को ज़्यादा अपटाइम और ग्लोबल रिडंडेंसी के साथ सेव किया जाता है. Cloud Storage for Firebase की मदद से, इन फ़ाइलों को सीधे तौर पर मोबाइल डिवाइसों और वेब ब्राउज़र से सुरक्षित तरीके से अपलोड किया जा सकता है. साथ ही, नेटवर्क की समस्या होने पर भी आसानी से काम किया जा सकता है.

शुरू करने से पहले

  1. अगर आपने अब तक ऐसा नहीं किया है, तो पक्का करें कि आपने Apple प्लैटफ़ॉर्म के ऐप्लिकेशन के लिए, शुरू करने से जुड़ी गाइड पढ़ ली हो. इसमें इस तरह का कॉन्टेंट शामिल है:

    • Firebase प्रोजेक्ट बनाना.

    • अपने Apple प्लैटफ़ॉर्म ऐप्लिकेशन को प्रोजेक्ट के साथ रजिस्टर करें. इसके बाद, Firebase लाइब्रेरी और Firebase कॉन्फ़िगरेशन फ़ाइल (GoogleService-Info.plist) को अपने ऐप्लिकेशन में जोड़कर, उसे Firebase से कनेक्ट करें.

  2. पक्का करें कि आपका Firebase प्रोजेक्ट, इस्तेमाल के हिसाब से पैसे चुकाने वाले Blaze प्लान पर हो. Cloud Storage for Firebase का इस्तेमाल करने के लिए, यह ज़रूरी है. अगर आपने हाल ही में Firebase का इस्तेमाल शुरू किया है और Google Cloud, तो देखें कि आपको 300 डॉलर का मुफ़्त में आज़माने का क्रेडिट मिल सकता है या नहीं.

डिफ़ॉल्ट Cloud Storage बकेट बनाना

  1. Firebase कंसोल में, डेटाबेस और स्टोरेज > स्टोरेज पर जाएं.

    अगर आपका प्रोजेक्ट, इस्तेमाल के हिसाब से पैसे चुकाने वाले Blaze प्लान पर नहीं है, तो आपको अपने प्रोजेक्ट को अपग्रेड करने के लिए कहा जाएगा.

  2. शुरू करें पर क्लिक करें.

  3. अपने डिफ़ॉल्ट बकेट के लिए जगह चुनें.

  4. अपने डिफ़ॉल्ट बकेट के लिए Firebase Security Rules को कॉन्फ़िगर करें. डेवलपमेंट के दौरान, सार्वजनिक ऐक्सेस के लिए नियम सेट अप करें.

  5. हो गया पर क्लिक करें.

अब आपको Firebase console में बकेट दिखेगा. इसके लिए, डेटाबेस और स्टोरेज > स्टोरेज > फ़ाइलें टैब पर जाएं. आपके डिफ़ॉल्ट बकेट का नाम PROJECT_ID.firebasestorage.app फ़ॉर्मैट में होता है.

सार्वजनिक ऐक्सेस सेट अप करना

Cloud Storage for Firebase में नियमों को तय करने वाली भाषा दी गई है. इससे यह तय किया जा सकता है कि आपके डेटा को कैसे स्ट्रक्चर किया जाए, उसे कैसे इंडेक्स किया जाए, और आपके डेटा को कब पढ़ा और लिखा जा सकता है. डिफ़ॉल्ट रूप से, Cloud Storage को पढ़ने और उसमें बदलाव करने का ऐक्सेस सीमित होता है. इसलिए, सिर्फ़ पुष्टि किए गए उपयोगकर्ता ही डेटा को पढ़ या उसमें बदलाव कर सकते हैं. Authentication को सेट अप किए बिना शुरू करने के लिए, सार्वजनिक ऐक्सेस के लिए अपने नियम कॉन्फ़िगर करें.

इससे Cloud Storage को कोई भी ऐक्सेस कर सकता है. यहां तक कि वे लोग भी जो आपका ऐप्लिकेशन इस्तेमाल नहीं करते. इसलिए, पुष्टि करने की सुविधा सेट अप करते समय, Cloud Storage के ऐक्सेस को फिर से सीमित करें.

अपने ऐप्लिकेशन में Cloud Storage जोड़ना

Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.

  1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Packages पर जाएं.
  2. जब आपसे कहा जाए, तब Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Cloud Storage लाइब्रेरी चुनें.
  5. अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में, -ObjC फ़्लैग जोड़ें.
  6. इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी से जुड़ी समस्या को हल करना शुरू कर देगा और उन्हें बैकग्राउंड में डाउनलोड करेगा.

अपने ऐप्लिकेशन में Cloud Storage सेट अप करना

  1. Firebase के किसी भी रेफ़रंस को बनाने या इस्तेमाल करने से पहले, Firebase को शुरू करें.

    अगर आपने पहले से ही कोई अन्य Firebase प्रॉडक्ट सेट अप किया है, तो हो सकता है कि आपने यह काम पहले ही कर लिया हो. हालांकि, आपको यह पक्का करना होगा कि आपने इंपोर्ट की सूची में FirebaseStorage लाइब्रेरी जोड़ी हो.

    1. अपने UIApplicationDelegate में FirebaseCore मॉड्यूल और FirebaseStorage मॉड्यूल इंपोर्ट करें. हमारा यह भी सुझाव है कि आप 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;
      // ...
      
    2. अपने ऐप्लिकेशन डेलिगेट के application(_:didFinishLaunchingWithOptions:) तरीके में, FirebaseApp शेयर किए गए इंस्टेंस को कॉन्फ़िगर करें:

      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 के लिए) ऐप्लिकेशन डेलिगेट बनाएं और उसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor का इस्तेमाल करके, अपने App स्ट्रक्चर से अटैच करें. आपको ऐप्लिकेशन के डेलिगेट स्विज़लिंग को भी बंद करना होगा. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.

      SwiftUI

      @main
      struct YourApp: App {
        // Register app delegate for Firebase setup
        @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
      
        var body: some Scene {
          WindowGroup {
            NavigationView {
              ContentView()
            }
          }
        }
      }
      
  2. डिफ़ॉल्ट Firebase ऐप्लिकेशन का इस्तेमाल करके, Cloud Storage सेवा का रेफ़रंस पाएं.

    1. पक्का करें कि आपके ऐप्लिकेशन के कोडबेस में मौजूद Firebase कॉन्फ़िगरेशन फ़ाइल (GoogleService-Info.plist), आपके डिफ़ॉल्ट Cloud Storage बकेट के नाम से अपडेट हो.

      1. अपडेट की गई कॉन्फ़िगरेशन फ़ाइल पाएं..

      2. इस डाउनलोड की गई कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, अपने Xcode प्रोजेक्ट के रूट में मौजूद GoogleService-Info.plist फ़ाइल को बदलें. अगर आपसे कहा जाए, तो सभी टारगेट में कॉन्फ़िगरेशन फ़ाइल जोड़ने का विकल्प चुनें.

        पक्का करें कि आपके ऐप्लिकेशन में, सिर्फ़ यह सबसे नई डाउनलोड की गई कॉन्फ़िगरेशन फ़ाइल मौजूद हो. साथ ही, यह भी पक्का करें कि इसके फ़ाइल नाम में (2) जैसे अतिरिक्त वर्ण न जोड़े गए हों.

    2. डिफ़ॉल्ट Firebase ऐप्लिकेशन का इस्तेमाल करके, Cloud Storage सेवा का रेफ़रंस पाएं:

      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 बकेट का इस्तेमाल करना होगा.

तीसरा इस्तेमाल का तरीका तब काम आता है, जब आपको Google Drive जैसा कोई ऐप्लिकेशन बनाना हो. इस ऐप्लिकेशन में, उपयोगकर्ता एक साथ कई खातों में लॉग इन कर सकते हैं. उदाहरण के लिए, निजी खाता और ऑफ़िस से जुड़ा खाता. हर अतिरिक्त खाते की पुष्टि करने के लिए, कस्टम 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 को इन फ़ाइलों को ऐक्सेस करने की अनुमति देनी होगी. इसके लिए, Google Cloud SDK में शामिल gsutil टूल का इस्तेमाल करें:

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

अगले चरण