תחילת העבודה עם Cloud Storage ל-Unity

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

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

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

  • רושמים את הפרויקט ב-Unity ומגדירים אותו לשימוש ב-Firebase.

    • אם כבר משתמשים ב-Firebase בפרויקט שלכם ב-Unity, הוא כבר רשום ב-Firebase ועבר הגדרה.

    • אם אין לכם פרויקט ב-Unity, תוכלו להוריד אפליקציה לדוגמה.

  • מוסיפים את Firebase Unity SDK (במיוחד FirebaseStorage.unitypackage) לפרויקט ב-Unity.

חשוב לזכור שהוספת Firebase לפרויקט ב-Unity כוללת משימות גם במסוף Firebase וגם בפרויקט הפתוח ב-Unity (לדוגמה, מורידים קובצי תצורה של Firebase מהמסוף ומעבירים אותם לפרויקט ב-Unity).

כמו כן, צריך לוודא שהפרויקט ב-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 כשמגדירים אימות.

גישה לכיתה FirebaseStorage

Firebase.Storage.FirebaseStorage היא נקודת הכניסה ל-Cloud Storage Unity SDK.

// Get a reference to the storage service, using the default Firebase App
FirebaseStorage storage = FirebaseStorage.DefaultInstance;

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

השלב הבא? איך יוצרים הפניה ל-Cloud Storage

הגדרה מתקדמת

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

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

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

בשני תרחישים לדוגמה האלה, כדאי להשתמש בכמה קטגוריות Cloud Storage.

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

שימוש במספר קטגוריות של Cloud Storage

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

// Get a non-default Storage bucket
var storage = FirebaseStorage.GetInstance("gs://my-custom-bucket");

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

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

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

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

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

שימוש באפליקציית Firebase בהתאמה אישית

אם אתם מפתחים אפליקציה מורכבת יותר באמצעות FirebaseApp מותאם אישית, תוכלו ליצור מכונה של FirebaseStorage שמבוצעת בה אתחול עם האפליקציה הזו:

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.GetInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage storageCustom = FirebaseStorage.GetInstance(customApp, "gs://my-custom-bucket");

השלבים הבאים