了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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

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

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

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

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

  1. Firebase कंसोल के नेविगेशन फलक से, संग्रहण चुनें, फिर प्रारंभ करें क्लिक करें.

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

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

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

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

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

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

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

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

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

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

अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर <project>/<app-module>/build.gradle ) में, क्लाउड स्टोरेज एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें। हम लाइब्रेरी वर्ज़निंग को नियंत्रित करने के लिए Firebase Android BoM का उपयोग करने की सलाह देते हैं।

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx'
}

Firebase Android BoM का उपयोग करके, आपका ऐप हमेशा Firebase Android पुस्तकालयों के संगत संस्करणों का उपयोग करेगा।

(वैकल्पिक) BoM का उपयोग किए बिना Firebase लाइब्रेरी निर्भरताएँ जोड़ें

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

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

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-ktx:20.2.0'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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 लाइब्रेरी निर्भरताएँ जोड़ें

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

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

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:20.2.0'
}

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

अपने क्लाउड स्टोरेज बकेट तक पहुँचने में पहला कदम FirebaseStorage का एक उदाहरण बनाना है:

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

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

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

अग्रिम सेटअप

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

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

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

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

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

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

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

Kotlin+KTX

// 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 में मौजूदा क्लाउड स्टोरेज बकेट आयात करते समय, आपको Google क्लाउड SDK में शामिल gsutil टूल का उपयोग करके Firebase को इन फ़ाइलों तक पहुंचने की क्षमता प्रदान करनी होगी:

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

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

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

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

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

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

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

अगले कदम