Catch up on highlights from Firebase at Google I/O 2023. Learn more

C++ के लिए क्लाउड स्टोरेज के साथ शुरुआत करें

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

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

इससे पहले कि आप क्लाउड स्टोरेज का उपयोग कर सकें, आपको निम्न की आवश्यकता है:

  • अपने C++ प्रोजेक्ट को पंजीकृत करें और इसे Firebase का उपयोग करने के लिए कॉन्फ़िगर करें।

    यदि आपका C++ प्रोजेक्ट पहले से ही Firebase का उपयोग करता है, तो यह पहले से पंजीकृत है और Firebase के लिए कॉन्फ़िगर किया गया है।

  • अपने C++ प्रोजेक्ट में Firebase C++ SDK जोड़ें।

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

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

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

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

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

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

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

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

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

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

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

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

firebase::App बनाएं और आरंभ करें

इससे पहले कि आप क्लाउड स्टोरेज का उपयोग कर सकें, आपको firebase::App बनाना और आरंभ करना होगा।

firebase::App के लिए हेडर फ़ाइल शामिल करें:

#include "firebase/app.h"

एंड्रॉयड

firebase::App बनाएं, जेएनआई पर्यावरण पास करें और तर्क के रूप में जावा गतिविधि के लिए jobject संदर्भ दें:

app = App::Create(AppOptions(), jni_env, activity);

आईओएस+

firebase::App :

app = App::Create(AppOptions());

firebase::storage::Storage क्लास तक पहुंचें

firebase::storage::Storage क्लास क्लाउड स्टोरेज सी ++ एसडीके के लिए प्रवेश बिंदु है।

Storage* storage = Storage::GetInstance(app);

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

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

अग्रिम सेटअप

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

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

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

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

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

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

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

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::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 को अनुमति देने के लिए डिफ़ॉल्ट एक्सेस कंट्रोल सेट है। यह एक अस्थायी उपाय है, और भविष्य में स्वचालित रूप से किया जाएगा।

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

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

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

अगले कदम