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
בחלונית הניווט של מסוף Firebase, בוחרים באפשרות Storage.
אם הפרויקט שלכם עדיין לא מוגדר לתוכנית התמחור של Blaze בתשלום לפי שימוש, תתבקשו לשדרג את הפרויקט.
לוחצים על תחילת העבודה.
בוחרים מיקום לקטגוריית ברירת המחדל.
בקטגוריות ב-
, ב-US-CENTRAL1
וב-US-EAST1
אפשר ליהנות מהתוכנית 'תמיד בחינם' ב-Google Cloud Storage. בקטגוריות בכל המיקומים האחרים חל התמחור והשימוש של Google Cloud Storage.US-WEST1
אחר כך אפשר ליצור מספר קטגוריות, כל אחת עם מיקום משלה.
מגדירים את Firebase Security Rules לקטגוריית ברירת המחדל. במהלך הפיתוח, כדאי להגדיר כללים לגישה ציבורית.
לוחצים על סיום.
עכשיו אפשר לראות את הקטגוריה בכרטיסייה 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
היא נקודת הכניסה ל-C++ SDK של Cloud Storage.
Storage* storage = Storage::GetInstance(app);
עכשיו הכול מוכן ואפשר להתחיל להשתמש ב-Cloud Storage!
השלב הבא? איך יוצרים הפניה ל-Cloud Storage
הגדרה מתקדמת
יש כמה תרחישים לדוגמה שבהם נדרשת הגדרה נוספת:
- שימוש בקטגוריות Cloud Storage במספר אזורים גיאוגרפיים
- שימוש בקטגוריות Cloud Storage בסוגי אחסון שונים
- שימוש ב-Cloud Storage בקטגוריות עם מספר משתמשים מאומתים באותה האפליקציה
התרחיש לדוגמה הראשון מושלם אם יש לכם משתמשים ברחבי העולם ואתם רוצים לאחסן את הנתונים שלהם בסביבתם. לדוגמה, אפשר ליצור קטגוריות בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של משתמשים באזורים האלה, וכך לצמצם את זמן האחזור.
התרחיש השני לדוגמה שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אפשר להגדיר קטגוריה בכמה אזורים או באזור מסוים לאחסון תמונות או תוכן אחר שנגיש בתדירות גבוהה, וקטגוריה לטווח קצר או לטווח ארוך לאחסון גיבויים של משתמשים או תוכן אחר שנגיש בתדירות נמוכה.
בשני תרחישים לדוגמה האלה, כדאי להשתמש בכמה קטגוריות Cloud Storage.
התרחיש השלישי יכול להיות שימושי אם אתם מפתחים אפליקציה כמו Google Drive, שמאפשרת למשתמשים להיכנס לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). ניתן להשתמש במכונה מותאמת אישית של אפליקציית Firebase כדי לאמת כל חשבון נוסף.
שימוש במספר קטגוריות של 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");
השלבים הבאים
הכנה להשקת האפליקציה:
- מגדירים התראות תקציב לפרויקט במסוף Google Cloud.
- עוקבים אחרי מרכז הבקרה שימוש וחיוב במסוף Firebase כדי לקבל תמונה כללית של השימוש בפרויקט בכמה שירותי Firebase. אפשר גם להיכנס ללוח הבקרה Cloud Storage Usage כדי לקבל מידע מפורט יותר על השימוש.
- כדאי לעיין ברשימת המשימות להשקת Firebase.