תחילת השימוש ב-Cloud Storage ל-C++

Cloud Storage for Firebase מאפשרת לכם להעלות ולשתף תוכן שנוצר על ידי משתמשים, כמו תמונות וסרטונים, וכך ליצור תוכן מדיה עשירה באפליקציות שלכם. הנתונים שלכם מאוחסנים בקטגוריה Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. Cloud Storage for Firebase מאפשרת להעלות את הקבצים האלה בצורה מאובטחת ישירות ממכשירים ניידים ומדפדפני אינטרנט, ומטפלת בקלות ברשתות לא יציבות.

לפני שמתחילים

כדי להשתמש ב-Cloud Storage, צריך:

  • רושמים את פרויקט C++‎ ומגדירים אותו לשימוש ב-Firebase.

    אם בפרויקט C++ שלכם כבר נעשה שימוש ב-Firebase, הוא כבר רשום ומוגדר לשימוש ב-Firebase.

  • מוסיפים את Firebase C++ SDK לפרויקט C++.

שימו לב שהוספת Firebase לפרויקט C++‎ כוללת משימות במסוף Firebase ובפרויקט C++‎ הפתוח (לדוגמה, הורדה של קובצי תצורה של Firebase מהמסוף והעברה שלהם לפרויקט C++‎).

בנוסף, חשוב לוודא שהפרויקט שלכם ב-Firebase נמצא בתוכנית התמחור Blaze עם תשלום לפי שימוש. אם אתם משתמשים חדשים ב-Firebase וב-Google Cloud, כדאי לבדוק אם אתם עומדים בדרישות לקבלת קרדיט בסך 300$.

יצירת קטגוריית Cloud Storage שמוגדרת כברירת מחדל

  1. בחלונית הניווט של מסוף Firebase, בוחרים באפשרות Storage.

    אם הפרויקט שלכם עדיין לא מוגדר בתוכנית התמחור Blaze בתשלום לפי שימוש, תופיע בקשה לשדרג את הפרויקט.

  2. לוחצים על תחילת העבודה.

  3. בוחרים מיקום לקטגוריית ברירת המחדל.

  4. מגדירים את Firebase Security Rules לקטגוריית ברירת המחדל. במהלך הפיתוח, כדאי להגדיר את הכללים לגישה ציבורית.

  5. לוחצים על סיום.

עכשיו אפשר לראות את הקטגוריה בכרטיסייה Cloud Storage Files במסוף Firebase. פורמט ברירת המחדל של שם הקטגוריה הוא PROJECT_ID.firebasestorage.app.

הגדרה של גישה ציבורית

Cloud Storage for Firebase מספק שפת כללים הצהרתית שמאפשרת להגדיר את המבנה של הנתונים, את אופן יצירת האינדקס שלהם ואת הזמן שבו אפשר לקרוא את הנתונים ולכתוב אותם. כברירת מחדל, הגישה לקריאה ולכתיבה של Cloud Storage מוגבלת, כך שרק משתמשים מאומתים יכולים לקרוא או לכתוב נתונים. כדי להתחיל בלי להגדיר את Authentication, אפשר להגדיר את הכללים לגישה ציבורית.

הפעולה הזו תגרום לכך שכל אחד יוכל לפתוח את Cloud Storage, גם אנשים שלא משתמשים באפליקציה שלכם. לכן, חשוב להגביל שוב את Cloud Storage כשמגדירים אימות.

יצירה ואתחול של firebase::App

כדי לקבל גישה ל-Cloud Storage, צריך ליצור את firebase::App ולאתחל אותו.

כוללים את קובץ הכותרת של firebase::App:

#include "firebase/app.h"

Android

יוצרים את firebase::App, ומעבירים את סביבת ה-JNI ואת ההפניה jobject לפעילות ב-Java כארגומנטים:

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

‫iOS+‎

יוצרים את firebase::App:

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

גישה לכיתה firebase::storage::Storage

המחלקות firebase::storage::Storage הן נקודת הכניסה ל-Cloud Storage C++ SDK.

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

הכול מוכן ואפשר להתחיל להשתמש ב-Cloud Storage!

מה השלב הבא? איך יוצרים קובץ עזר מסוג Cloud Storage

הגדרה מתקדמת

יש כמה תרחישי שימוש שדורשים הגדרה נוספת:

מקרה השימוש הראשון מתאים במיוחד אם יש לכם משתמשים בכל העולם ואתם רוצים לאחסן את הנתונים שלהם בקרבתם. לדוגמה, אפשר ליצור מאגרי נתונים בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של משתמשים באזורים האלה ולצמצם את זמן האחזור.

תרחיש השימוש השני שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אתם יכולים להגדיר באקט רב-אזורי או אזורי לאחסון תמונות או תוכן אחר שמתבצעת אליו גישה לעיתים קרובות, ובאקט nearline או coldline לאחסון גיבויים של משתמשים או תוכן אחר שמתבצעת אליו גישה לעיתים רחוקות.

בכל אחד מהתרחישים האלה, כדאי להשתמש בכמה דליים של Cloud Storage.

מקרה השימוש השלישי שימושי אם אתם מפתחים אפליקציה, כמו Google Drive, שמאפשרת למשתמשים להיות מחוברים לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). אתם יכולים להשתמש במופע מותאם אישית של Firebase App כדי לאמת כל חשבון נוסף.

שימוש בכמה קטגוריות Cloud Storage

אם רוצים להשתמש בקטגוריית Cloud Storage אחרת מזו שמוגדרת כברירת מחדל כמו שמוסבר למעלה, או להשתמש בכמה קטגוריות Cloud Storage באפליקציה אחת, אפשר ליצור מופע של firebase::storage::Storage שמפנה לקטגוריה בהתאמה אישית:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

עבודה עם קטגוריות מיובאות

כשמייבאים באקט Cloud Storage קיים ל-Firebase, צריך לתת ל-Firebase גישה לקבצים האלה באמצעות הכלי gsutil, שכלול ב-Google Cloud SDK:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

מספר הפרויקט מופיע כמו שמתואר במאמר המבוא לפרויקטים ב-Firebase.

השינוי הזה לא משפיע על קטגוריות חדשות שנוצרו, כי בברירת המחדל מוגדרת בהן בקרת גישה שמאפשרת גישה ל-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");

השלבים הבאים