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

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

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

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

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

    • अपने Android ऐप्लिकेशन को प्रोजेक्ट के साथ रजिस्टर करना. साथ ही, अपने ऐप्लिकेशन में Firebase डिपेंडेंसी, Google services प्लग-इन, और 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:34.12.0"))

    // 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 लाइब्रेरी की डिपेंडेंसी जोड़नाBoM

अगर 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:22.0.1")
}

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

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

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

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

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

  2. Cloud Storage बकेट को ऐक्सेस करने के लिए, FirebaseStorage का इंस्टेंस बनाएं:

    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 बकेट का इस्तेमाल करना
  • अलग-अलग स्टोरेज क्लास में 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");

इंपोर्ट की गई बकेट के साथ काम करना

Firebase में किसी मौजूदा Cloud Storage बकेट को इंपोर्ट करते समय, आपको Firebase को gsutil टूल का इस्तेमाल करके इन फ़ाइलों को ऐक्सेस करने की अनुमति देनी होगी. यह टूल, Google Cloud SDK में शामिल है:

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

अगले चरण