Cloud Storage for Firebase מאפשר להעלות ולשתף תוכן שנוצר על ידי משתמשים, כמו תמונות וסרטונים, וכך ליצור תוכן של מדיה עשירה באפליקציות שלכם. הנתונים מאוחסנים בקטגוריה של Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. Cloud Storage for Firebase מאפשר לכם להעלות את הקבצים האלה בצורה מאובטחת ישירות ממכשירים ניידים ומדפדפני אינטרנט, תוך טיפול קל ברשתות לא יציבות.
לפני שמתחילים
אם עדיין לא עשיתם זאת, כדאי לקרוא את מדריך למתחילים בנושא אפליקציות Flutter. בין המקורות האלה:
יצירת פרויקט Firebase.
התקנה והפעלה של Firebase SDK ל-Flutter.
מוודאים שהפרויקט ב-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 מוגבלת, כך שרק משתמשים מאומתים יכולים לקרוא או לכתוב נתונים. כדי להתחיל בלי להגדיר אימות ב-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
) ב-codebase של האפליקציה, כך שיהיה לו את השם של קטגוריית ברירת המחדל 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 בסוגי אחסון שונים
- שימוש בקטגוריות של Cloud Storage עם כמה משתמשים מאומתים באותה אפליקציה
התרחיש לדוגמה הראשון מושלם אם יש לכם משתמשים ברחבי העולם ואתם רוצים לאחסן את הנתונים שלהם בסביבתם. לדוגמה, אפשר ליצור קטגוריות בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של המשתמשים באזורים האלה ולקצר את זמן האחזור.
התרחיש השני לדוגמה שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אפשר להגדיר קטגוריה בכמה אזורים או באזור מסוים לאחסון תמונות או תוכן אחר שנגיש בתדירות גבוהה, וקטגוריה לטווח קצר או לטווח ארוך לאחסון גיבויים של משתמשים או תוכן אחר שנגיש בתדירות נמוכה.
בשני התרחישים האלה, כדאי להשתמש בכמה קטגוריות של Cloud Storage.
התרחיש לדוגמה השלישי שימושי אם אתם מפתחים אפליקציה, כמו Google Drive, שמאפשרת למשתמשים להתחבר לכמה חשבונות (למשל, חשבון לשימוש אישי וחשבון לצורכי עבודה). אפשר להשתמש במכונה מותאמת אישית של Firebase App כדי לאמת כל חשבון נוסף.
שימוש בכמה קטגוריות של Cloud Storage
אם רוצים להשתמש בקטגוריה אחרת של Cloud Storage מלבד ברירת המחדל שצוינה למעלה, או להשתמש בכמה קטגוריות של Cloud Storage באפליקציה אחת, אפשר ליצור מכונה של FirebaseStorage
שמפנה לקטגוריה בהתאמה אישית:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "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://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.