תחילת השימוש ב-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. לוחצים על סיום.

עכשיו אפשר לראות את הקטגוריה בכרטיסייה Files של Cloud Storage במסוף 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 היא נקודת הכניסה ל-SDK של Cloud Storage ב-C++.

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

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

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

הגדרה מתקדמת

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

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

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

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

השלבים הבאים