Cloud Storage for Firebase מאפשרת להעלות ולשתף תוכן שנוצר על ידי משתמשים, כמו תמונות וסרטונים, וכך להוסיף תוכן של מדיה עשירה לאפליקציות. הנתונים מאוחסנים בקטגוריה Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. באמצעות Cloud Storage for Firebase אפשר להעלות את הקבצים האלה בצורה מאובטחת ישירות ממכשירים ניידים ומדפדפני אינטרנט, ולטפל ברשתות בעייתיות בקלות.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מומלץ לקרוא את מדריך למתחילים בנושא אפליקציות ל-Android. בין המקורות האלה:
יוצרים פרויקט Firebase.
רישום אפליקציית Android בפרויקט וקישור האפליקציה ל-Firebase על ידי הוספת יחסי התלות של Firebase, הפלאגין של שירותי Google וקובץ התצורה של Firebase (
google-services.json
) לאפליקציה.
מוודאים שהפרויקט ב-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 כשמגדירים אימות.
הוספת ה-SDK של Cloud Storage לאפליקציה
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל<project>/<app-module>/build.gradle.kts
או <project>/<app-module>/build.gradle
), מוסיפים את התלות לספריית Cloud Storage ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בגרסאות הספרייה.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.0")) // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage") }
כשמשתמשים ב-Firebase Android BoM, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Firebase ל-Android.
(חלופה) מוסיפים יחסי תלות לספריות של Firebase בלי להשתמש ב-BoM
אם בוחרים שלא להשתמש ברכיב Firebase BoM, צריך לציין כל גרסה של ספריית Firebase בשורת התלות שלה.
לתשומת ליבך: אם משתמשים באפליקציה שלך באמצעות מספר ספריות של Firebase, מומלץ מאוד להשתמש ב-BoM כדי לנהל את הגרסאות של הספרייה, וכך להבטיח שכל הגרסאות תואמות.
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage:21.0.1") }
הגדרת Cloud Storage באפליקציה שלך
מוודאים שקובץ התצורה של Firebase (
google-services.json
) במאגר הקוד של האפליקציה מעודכן עם השם של קטגוריית ברירת המחדל Cloud Storage.משתמשים בקובץ התצורה שהורדתם כדי להחליף את הקובץ
google-services.json
הקיים בתיקיית המודול של האפליקציה (ברמת האפליקציה).חשוב לוודא שבאפליקציה שלכם יש רק את קובץ התצורה שהורדתם לאחרונה, ושלא נוספו תווים נוספים לשם הקובץ, כמו
(2)
.
כדי לגשת לקטגוריה Cloud Storage, יוצרים מכונה של
FirebaseStorage
:Kotlin+KTX
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
עכשיו הכול מוכן ואפשר להתחיל להשתמש ב-Cloud Storage!
השלב הבא? איך יוצרים קובץ עזר של Cloud Storage
הגדרה מתקדמת
יש כמה תרחישים לדוגמה שבהם נדרשת הגדרה נוספת:
- שימוש בקטגוריות Cloud Storage במספר אזורים גיאוגרפיים
- שימוש בקטגוריות Cloud Storage בסוגי אחסון שונים
- שימוש ב-Cloud Storage בקטגוריות עם מספר משתמשים מאומתים באותה האפליקציה
התרחיש לדוגמה הראשון הוא מושלם אם יש לכם משתמשים מכל העולם, ואתם רוצים לאחסן את הנתונים שלהם בקרבתם. לדוגמה, אפשר ליצור קטגוריות בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של המשתמשים באזורים האלה וכך לקצר את זמן האחזור.
התרחיש השני לדוגמה שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אפשר להגדיר קטגוריה בכמה אזורים או באזור מסוים לאחסון תמונות או תוכן אחר שנגיש לעיתים קרובות, וקטגוריה לטווח קצר או לטווח ארוך לאחסון גיבויים של משתמשים או תוכן אחר שנגיש לעיתים רחוקות.
בשני תרחישים לדוגמה האלה, כדאי להשתמש בכמה קטגוריות Cloud Storage.
התרחיש השלישי יכול להיות שימושי אם אתם מפתחים אפליקציה כמו Google Drive, שמאפשרת למשתמשים להיכנס לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). אפשר להשתמש במכונה מותאמת אישית של Firebase App כדי לאמת כל חשבון נוסף.
שימוש במספר קטגוריות של Cloud Storage
אם אתם רוצים להשתמש בקטגוריה Cloud Storage שאינה קטגוריית ברירת המחדל שמתוארת למעלה, או להשתמש בכמה קטגוריות Cloud Storage באפליקציה אחת, תוכלו ליצור מופע של FirebaseStorage
שמפנה לקטגוריה בהתאמה אישית:
Kotlin+KTX
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage 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
שמאותחלל באמצעות האפליקציה הזו:
Kotlin+KTX
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
השלבים הבאים
הכנה להשקת האפליקציה:
מפעילים את App Check כדי לוודא שרק האפליקציות שלכם יכולות לגשת למאגרי האחסון.
מגדירים התראות תקציב לפרויקט במסוף Google Cloud.
במסוף Firebase, אפשר לעקוב אחרי לוח הבקרה של השימוש והחיוב כדי לקבל תמונה כללית של השימוש בפרויקט במספר שירותי Firebase. אפשר גם להיכנס ללוח הבקרה Cloud Storage Usage כדי לקבל מידע מפורט יותר על השימוש.
כדאי לעיין ברשימת המשימות להשקת Firebase.