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

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

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

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

क्लाउड स्टोरेज का उपयोग करने से पहले, आपको यह करना होगा:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

firebase::App

इससे पहले कि आप Cloud Storage को एक्सेस कर सकें, आपको 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 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 प्रोजेक्ट के परिचय में बताए अनुसार अपना प्रोजेक्ट नंबर पा सकते हैं।

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

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

यदि आप कस्टम 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");

अगले कदम