Check out what’s new from Firebase at Google I/O 2022. Learn more

Android पर क्लाउड स्टोरेज के साथ शुरुआत करें

फायरबेस के लिए क्लाउड स्टोरेज आपको छवियों और वीडियो जैसे उपयोगकर्ता द्वारा जेनरेट की गई सामग्री को अपलोड और साझा करने देता है, जो आपको अपने ऐप्स में समृद्ध मीडिया सामग्री बनाने की अनुमति देता है। आपका डेटा Google क्लाउड स्टोरेज बकेट में संग्रहीत किया जाता है - उच्च उपलब्धता और वैश्विक अतिरेक के साथ एक एक्साबाइट स्केल ऑब्जेक्ट स्टोरेज समाधान। फायरबेस के लिए क्लाउड स्टोरेज आपको इन फ़ाइलों को सीधे मोबाइल उपकरणों और वेब ब्राउज़र से सुरक्षित रूप से अपलोड करने देता है, स्पॉटी नेटवर्क को आसानी से संभालता है।

आवश्यक शर्तें

यदि आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें

एक डिफ़ॉल्ट क्लाउड स्टोरेज बकेट बनाएं

  1. फायरबेस कंसोल के नेविगेशन पेन से, स्टोरेज चुनें, फिर गेट स्टार्ट पर क्लिक करें।

  2. सुरक्षा नियमों का उपयोग करके अपने क्लाउड स्टोरेज डेटा को सुरक्षित करने के बारे में संदेश की समीक्षा करें। विकास के दौरान, सार्वजनिक पहुंच के लिए अपने नियम स्थापित करने पर विचार करें।

  3. अपने डिफ़ॉल्ट क्लाउड स्टोरेज बकेट के लिए एक स्थान चुनें।

    • यह स्थान सेटिंग आपके प्रोजेक्ट का डिफ़ॉल्ट Google क्लाउड प्लेटफ़ॉर्म (GCP) संसाधन स्थान है । ध्यान दें कि इस स्थान का उपयोग आपके प्रोजेक्ट में GCP सेवाओं के लिए किया जाएगा, जिसके लिए स्थान सेटिंग की आवश्यकता होती है, विशेष रूप से, आपका Cloud Firestore डेटाबेस और आपका ऐप इंजन ऐप (जो कि क्लाउड शेड्यूलर का उपयोग करने पर आवश्यक है)।

    • यदि आप किसी स्थान का चयन करने में सक्षम नहीं हैं, तो आपके प्रोजेक्ट में पहले से ही एक डिफ़ॉल्ट GCP संसाधन स्थान है। इसे या तो प्रोजेक्ट निर्माण के दौरान या किसी अन्य सेवा को स्थापित करते समय सेट किया गया था जिसके लिए स्थान सेटिंग की आवश्यकता होती है।

    यदि आप ब्लेज़ योजना पर हैं, तो आप अनेक बकेट बना सकते हैं, प्रत्येक का अपना स्थान होगा।

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

सार्वजनिक पहुंच सेट करें

फायरबेस के लिए क्लाउड स्टोरेज एक घोषणात्मक नियम भाषा प्रदान करता है जो आपको यह परिभाषित करने की अनुमति देता है कि आपके डेटा को कैसे संरचित किया जाना चाहिए, इसे कैसे अनुक्रमित किया जाना चाहिए, और आपका डेटा कब से पढ़ा और लिखा जा सकता है। डिफ़ॉल्ट रूप से, क्लाउड स्टोरेज तक पढ़ने और लिखने की पहुंच प्रतिबंधित है, इसलिए केवल प्रमाणित उपयोगकर्ता ही डेटा पढ़ या लिख ​​सकते हैं। प्रमाणीकरण सेट किए बिना आरंभ करने के लिए, आप सार्वजनिक पहुंच के लिए अपने नियमों को कॉन्फ़िगर कर सकते हैं।

यह क्लाउड स्टोरेज को किसी के लिए भी खुला बनाता है, यहां तक ​​कि आपके ऐप का उपयोग न करने वाले लोगों के लिए भी, इसलिए प्रमाणीकरण सेट करते समय अपने क्लाउड स्टोरेज को फिर से प्रतिबंधित करना सुनिश्चित करें।

अपने ऐप में क्लाउड स्टोरेज एसडीके जोड़ें

फायरबेस एंड्रॉइड बीओएम का उपयोग करके, अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर app/build.gradle ) में क्लाउड स्टोरेज एंड्रॉइड लाइब्रेरी के लिए निर्भरता की घोषणा करें।

Java

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

    // Declare 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'
}

फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

(वैकल्पिक) BoM . का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरता घोषित करें

यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।

ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की अत्यधिक अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।

dependencies {
    // Declare 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:20.0.1'
}

Kotlin+KTX

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

    // Declare 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-ktx'
}

फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

(वैकल्पिक) BoM . का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरता घोषित करें

यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।

ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की अत्यधिक अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।

dependencies {
    // Declare 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-ktx:20.0.1'
}

क्लाउड स्टोरेज सेट करें

अपने Cloud Storage बकेट तक पहुंचने का पहला कदम FirebaseStorage का एक उदाहरण बनाना है:

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin+KTX

storage = Firebase.storage

आप क्लाउड स्टोरेज का उपयोग शुरू करने के लिए तैयार हैं!

सबसे पहले, आइए जानें कि क्लाउड स्टोरेज संदर्भ कैसे बनाया जाता है।

अग्रिम सेटअप

कुछ उपयोग के मामले हैं जिनके लिए अतिरिक्त सेटअप की आवश्यकता होती है:

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

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

इनमें से किसी भी उपयोग के मामले में, आप एकाधिक क्लाउड स्टोरेज बकेट का उपयोग करना चाहेंगे।

तीसरा उपयोग मामला तब उपयोगी होता है जब आप Google ड्राइव जैसे ऐप का निर्माण कर रहे हों, जो उपयोगकर्ताओं को एकाधिक लॉग इन खाते (उदाहरण के लिए, एक व्यक्तिगत खाता और एक कार्य खाता) देता है। आप प्रत्येक अतिरिक्त खाते को प्रमाणित करने के लिए कस्टम फायरबेस ऐप इंस्टेंस का उपयोग कर सकते हैं।

एकाधिक क्लाउड स्टोरेज बकेट का उपयोग करें

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

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Kotlin+KTX

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

आयातित बाल्टियों के साथ काम करना

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

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

आप Firebase प्रोजेक्ट के परिचय में बताए अनुसार अपना प्रोजेक्ट नंबर पा सकते हैं।

यह नए बनाए गए बकेट को प्रभावित नहीं करता है, क्योंकि उनमें फ़ायरबेस को अनुमति देने के लिए डिफ़ॉल्ट एक्सेस कंट्रोल सेट होता है। यह एक अस्थायी उपाय है, और भविष्य में स्वचालित रूप से किया जाएगा।

एक कस्टम फायरबेस ऐप का प्रयोग करें

यदि आप कस्टम FirebaseApp का उपयोग करके एक अधिक जटिल ऐप बना रहे हैं, तो आप उस ऐप के साथ आरंभ किए गए FirebaseStorage का एक उदाहरण बना सकते हैं:

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

Kotlin+KTX

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

अगले कदम