Android पर Cloud Storage का इस्तेमाल शुरू करना

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

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

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

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

    • अपने Android ऐप्लिकेशन को प्रोजेक्ट के साथ रजिस्टर करना और Firebase डिपेंडेंसी, Google की सेवाओं का प्लग इन, और Firebase कॉन्फ़िगरेशन फ़ाइल (google-services.json) को अपने ऐप्लिकेशन में जोड़कर, ऐप्लिकेशन को Firebase से कनेक्ट करना.

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

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

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

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

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

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

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

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

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

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

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

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

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

मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, Android के लिए Cloud Storage लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करें.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.1"))

    // Add the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage")
}

Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase Android लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.

(दूसरा तरीका)  BoM का इस्तेमाल किए बिना, Firebase लाइब्रेरी डिपेंडेंसी जोड़ें

अगर आपको Firebase BoM का इस्तेमाल नहीं करना है, तो आपको Firebase लाइब्रेरी के हर वर्शन को उसकी डिपेंडेंसी लाइन में बताना होगा.

ध्यान दें कि अगर आपके ऐप्लिकेशन में एक से ज़्यादा Firebase लाइब्रेरी इस्तेमाल की जाती हैं, तो हमारा सुझाव है कि लाइब्रेरी के वर्शन मैनेज करने के लिए, BoM का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि सभी वर्शन साथ काम करते हों.

dependencies {
    // Add the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage:23.0.0")
}

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

  1. पक्का करें कि आपके ऐप्लिकेशन के कोड बेस में मौजूद Firebase कॉन्फ़िगरेशन फ़ाइल (google-services.json) को आपकी डिफ़ॉल्ट Cloud Storage बकेट के नाम के साथ अपडेट किया गया हो.

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

    2. डाउनलोड की गई इस कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, अपने ऐप्लिकेशन की मॉड्यूल (ऐप्लिकेशन-लेवल) डायरेक्ट्री में मौजूद google-services.json फ़ाइल को बदलें.

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

  2. FirebaseStorage का इंस्टेंस बनाकर, अपनी Cloud Storage बकेट को ऐक्सेस करें:

    Kotlin

    storage = Firebase.storage
    // Alternatively, explicitly specify the bucket name URL.
    // val storage = Firebase.storage("gs://BUCKET_NAME")

    Java

    FirebaseStorage storage = FirebaseStorage.getInstance();
    // Alternatively, explicitly specify the bucket name URL.
    // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");

अब Cloud Storage का इस्तेमाल किया जा सकता है!

आपको आगे क्या करना है? Cloud Storage रेफ़रंस बनाने का तरीका जानें.

ऐडवांस सेटअप

कुछ मामलों में, अतिरिक्त सेटअप की ज़रूरत होती है:

इस्तेमाल का पहला उदाहरण तब सही होता है, जब आपके पास दुनिया भर में उपयोगकर्ता हों और आपको उनका डेटा उनके आस-पास सेव करना हो. उदाहरण के लिए, अमेरिका, यूरोप, और एशिया में बकेट बनाई जा सकती हैं, ताकि उन इलाकों के उपयोगकर्ताओं का डेटा स्टोर किया जा सके. इससे इंतज़ार का समय कम हो जाता है.

अगर आपके पास अलग-अलग ऐक्सेस पैटर्न वाला डेटा है, तो दूसरा इस्तेमाल का उदाहरण मददगार साबित हो सकता है. उदाहरण के लिए: आपके पास एक से ज़्यादा क्षेत्रों या किसी क्षेत्र के लिए ऐसी बकेट सेट अप करने का विकल्प होता है जिसमें फ़ोटो या बार-बार ऐक्सेस किया जाने वाला अन्य कॉन्टेंट सेव किया जाता है. इसके अलावा, आपके पास नियरलाइन या कोल्डलाइन बकेट सेट अप करने का विकल्प भी होता है जिसमें उपयोगकर्ता का बैकअप या कभी-कभी ऐक्सेस किया जाने वाला अन्य कॉन्टेंट सेव किया जाता है.

इनमें से किसी भी इस्तेमाल के उदाहरण में, आपको एक से ज़्यादा Cloud Storage बकेट का इस्तेमाल करना होगा.

तीसरा इस्तेमाल का उदाहरण तब काम आता है, जब Google Drive जैसा कोई ऐप्लिकेशन बनाया जा रहा हो. इसमें उपयोगकर्ता एक से ज़्यादा खातों में लॉग इन कर सकते हैं. जैसे, निजी खाता और ऑफ़िस वाला खाता. हर अतिरिक्त खाते की पुष्टि करने के लिए, कस्टम Firebase ऐप्लिकेशन इंस्टेंस का इस्तेमाल किया जा सकता है.

एक से ज़्यादा Cloud Storage बकेट का इस्तेमाल करना

अगर आपको इस गाइड में पहले बताई गई डिफ़ॉल्ट बकेट के बजाय, किसी दूसरी Cloud Storage बकेट का इस्तेमाल करना है या किसी एक ऐप्लिकेशन में कई Cloud Storage बकेट का इस्तेमाल करना है, तो FirebaseStorage का एक इंस्टेंस बनाएं, जो आपकी कस्टम बकेट को रेफ़र करता हो:

Kotlin

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

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("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 का इस्तेमाल करके ज़्यादा जटिल ऐप्लिकेशन बनाया जा रहा है, तो उस ऐप्लिकेशन के साथ शुरू किए गए FirebaseStorage का इंस्टेंस बनाया जा सकता है:

Kotlin

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Java

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

अगले चरण