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

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

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

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

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

    • Flutter के लिए Firebase SDK टूल इंस्टॉल और शुरू करना.

  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 होता है.

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

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

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

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

  1. प्लग-इन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से यह कमांड चलाएं:

    flutter pub add firebase_storage
    
  2. यह प्रोसेस पूरी होने के बाद, अपना Flutter ऐप्लिकेशन फिर से बनाएं:

    flutter run
    
  3. अपने Dart कोड में प्लग-इन इंपोर्ट करें:

    import 'package:firebase_storage/firebase_storage.dart';
    

Cloud Storage सेट अप करना

  1. अपने Flutter प्रोजेक्ट की डायरेक्ट्री से flutterfire configure चलाएं. इससे आपके ऐप्लिकेशन के कोडबेस में मौजूद Firebase कॉन्फ़िगरेशन फ़ाइल (firebase_options.dart) अपडेट हो जाती है. इसके बाद, इसमें आपकी डिफ़ॉल्ट Cloud Storage बकेट का नाम दिखता है.

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

    final storage = FirebaseStorage.instance;
    
    // Alternatively, explicitly specify the bucket name URL.
    // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
    

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

अगला चरण क्या है? Cloud Storage रेफ़रंस बनाने का तरीका जानें .

बेहतर सेटअप

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

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

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

इनमें से किसी भी इस्तेमाल के मामले में, Cloud Storage की एक से ज़्यादा बकेट का इस्तेमाल किया जा सकता है.

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

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

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

// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "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://YOUR-CLOUD-STORAGE-BUCKET

Firebase प्रोजेक्ट के बारे में जानकारी में बताए गए तरीके से, अपना प्रोजेक्ट नंबर देखा जा सकता है.

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

Firebase ऐप्लिकेशन के कस्टम इंस्टेंस का इस्तेमाल करना

अगर FirebaseApp के कस्टम इंस्टेंस का इस्तेमाल करके, कोई ज़्यादा जटिल ऐप्लिकेशन बनाया जा रहा है, तो FirebaseStorage का एक इंस्टेंस बनाया जा सकता है. यह इंस्टेंस, उस ऐप्लिकेशन के साथ शुरू होता है:

// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);

अगले चरण