בעזרת Cloud Storage for Firebase אפשר להעלות ולשתף תוכן שנוצר על ידי משתמשים, כמו תמונות וסרטונים, וכך לשלב תוכן מדיה עשירה באפליקציות. הנתונים שלכם מאוחסנים בקטגוריה של Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. עם Cloud Storage for Firebase, אפשר להעלות את הקבצים האלה בצורה מאובטחת ישירות ממכשירים ניידים ומדפדפני אינטרנט, ולטפל בקלות בבעיות ברשתות.
לפני שמתחילים
אם עדיין לא עשיתם זאת, הקפידו להשלים את מדריך תחילת העבודה עם אפליקציות Flutter. בין המקורות האלה:
יצירת פרויקט Firebase.
התקנה ואתחול של Firebase SDKs for Flutter.
חשוב לוודא שהפרויקט שלכם ב-Firebase מוגדר בתוכנית התמחור Blaze עם תשלום לפי שימוש. זו דרישה שהחלה באוקטובר 2024 (אפשר לעיין בשאלות הנפוצות). אם אתם משתמשים חדשים ב-Firebase וב-Google Cloud, כדאי לבדוק אם אתם עומדים בדרישות לקבלת קרדיט בסך 300$.
יצירת קטגוריה של Cloud Storage שמוגדרת כברירת מחדל
בחלונית הניווט של מסוף Firebase, בוחרים באפשרות Storage.
אם הפרויקט שלכם עדיין לא מוגדר בתוכנית התמחור Blaze בתשלום לפי שימוש, תתבקשו לשדרג את הפרויקט.
לוחצים על תחילת העבודה.
בוחרים מיקום לקטגוריית ברירת המחדל.
אפשר להשתמש בדלי
,US-CENTRAL1 ו-US-EAST1 במסגרת התוכנית 'תמיד בחינם' של Google Cloud Storage. בכל שאר המיקומים, הדליים פועלים לפי Google Cloud Storage תמחור ושימוש.US-WEST1אם רוצים, אפשר ליצור כמה מאגרי מידע, כל אחד עם מיקום משלו.
מגדירים את Firebase Security Rules לקטגוריית ברירת המחדל. במהלך הפיתוח, כדאי להגדיר את הכללים לגישה ציבורית.
לוחצים על סיום.
עכשיו אפשר לראות את הקטגוריה בכרטיסייה Cloud Storage Files במסוף Firebase. פורמט ברירת המחדל של שם הקטגוריה הוא PROJECT_ID.firebasestorage.app
הגדרה של גישה ציבורית
Cloud Storage for Firebase מספק שפת כללים הצהרתית שמאפשרת לכם להגדיר איך הנתונים שלכם צריכים להיות מובנים, איך הם צריכים להיות מאונדקסים ומתי אפשר לקרוא את הנתונים ולכתוב אותם. כברירת מחדל, הגישה לקריאה ולכתיבה ב-Cloud Storage מוגבלת, כך שרק משתמשים מאומתים יכולים לקרוא או לכתוב נתונים. כדי להתחיל בלי להגדיר אימות ב-Firebase, אפשר להגדיר את הכללים לגישה ציבורית.
הפעולה הזו תאפשר לכל אחד לגשת ל-Cloud Storage, גם לאנשים שלא משתמשים באפליקציה שלכם, לכן חשוב להגביל שוב את הגישה ל-Cloud Storage כשמגדירים אימות.
הוספת Cloud Storage SDK לאפליקציה
מריצים את הפקודה הבאה מהרמה הבסיסית (root) של פרויקט Flutter כדי להתקין את הפלאגין:
flutter pub add firebase_storageבסיום התהליך, בונים מחדש את אפליקציית Flutter:
flutter runמייבאים את התוסף לקוד Dart:
import 'package:firebase_storage/firebase_storage.dart';
הגדרת Cloud Storage
מריצים את הפקודה
.flutterfire configureמהספרייה של פרויקט Flutter. הפעולה הזו מעדכנת את קובץ ההגדרות של Firebase (firebase_options.dart) בבסיס הקוד של האפליקציה, כך שיופיע בו השם של דלי ברירת המחדל Cloud Storage.כדי לגשת לקטגוריה של Cloud Storage, יוצרים מופע של
FirebaseStorage:final storage = FirebaseStorage.instance; // Alternatively, explicitly specify the bucket name URL. // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
הכול מוכן, אפשר להתחיל להשתמש ב-Cloud Storage.
מה השלב הבא? איך יוצרים הפניה ל-Cloud Storage
הגדרה מתקדמת
יש כמה תרחישי שימוש שדורשים הגדרה נוספת:
- שימוש בקטגוריות של Cloud Storage במספר אזורים גיאוגרפיים
- שימוש בקטגוריות של Cloud Storage בסוגי אחסון שונים (storage class)
- שימוש בקטגוריות של Cloud Storage עם כמה משתמשים מאומתים באותה אפליקציה
מקרה השימוש הראשון מתאים במיוחד אם יש לכם משתמשים בכל העולם ואתם רוצים לאחסן את הנתונים שלהם בקרבתם. לדוגמה, אפשר ליצור מאגרי נתונים בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של משתמשים באזורים האלה ולצמצם את זמן האחזור.
תרחיש השימוש השני שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אתם יכולים להגדיר באקט רב-אזורי או אזורי לאחסון תמונות או תוכן אחר שמתבצעת אליו גישה לעיתים קרובות, ובאקט nearline או coldline לאחסון גיבויים של משתמשים או תוכן אחר שמתבצעת אליו גישה לעיתים רחוקות.
בשני התרחישים האלה כדאי להשתמש בכמה קטגוריות של Cloud Storage.
מקרה השימוש השלישי שימושי אם אתם מפתחים אפליקציה, כמו Google Drive, שמאפשרת למשתמשים להיות מחוברים לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). אתם יכולים להשתמש במופע מותאם אישית של Firebase App כדי לאמת כל חשבון נוסף.
שימוש בכמה קטגוריות של Cloud Storage
אם רוצים להשתמש בקטגוריה של Cloud Storage שונה מזו שמוגדרת כברירת מחדל כמו שמוסבר למעלה, או להשתמש בכמה קטגוריות של Cloud Storage באפליקציה אחת, אפשר ליצור מופע של FirebaseStorage שמפנה לקטגיית Cloud Storage המותאמת אישית:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
עבודה עם קטגוריות מיובאות
כשמייבאים ל-Firebase מאגר קיים של Cloud Storage, צריך לתת ל-Firebase גישה לקבצים האלה באמצעות הכלי gsutil, שכלול ב-Google Cloud SDK:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET
אפשר למצוא את מספר הפרויקט כמו שמתואר במאמר המבוא לפרויקטים ב-Firebase.
השינוי הזה לא משפיע על קטגוריות חדשות שנוצרו, כי בברירת המחדל מוגדרת בהן בקרת גישה שמאפשרת גישה ל-Firebase. זהו אמצעי זמני, ובעתיד הוא יתבצע באופן אוטומטי.
שימוש באפליקציית Firebase מותאמת אישית
אם אתם בונים אפליקציה מורכבת יותר באמצעות FirebaseApp מותאם אישית, אתם יכולים ליצור מופע של FirebaseStorage שמאותחל עם האפליקציה הזו:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
השלבים הבאים
- הכנה להשקת האפליקציה:
- כדי לוודא שרק האפליקציות שלכם יוכלו לגשת למאגרי האחסון, מפעילים את App Check.
- מגדירים התראות על תקציב לפרויקט במסוף Google Cloud.
- כדי לקבל תמונה כוללת של השימוש בפרויקט בכמה שירותים של Firebase, אפשר לעקוב אחרי לוח הבקרה 'שימוש וחיוב' במסוף Firebase. אפשר גם להיכנס למרכז השליטה Usage של Cloud Storage כדי לקבל מידע מפורט יותר על השימוש.
- עיון ברשימת המשימות להשקה של Firebase.