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 לקטגוריית ברירת המחדל. במהלך הפיתוח, מומלץ להגדיר את הכללים לגישה ציבורית.
לוחצים על סיום.
עכשיו אפשר לראות את הקטגוריה בכרטיסייה 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 בסוגי אחסון שונים
- שימוש בקטגוריות של 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);
השלבים הבאים
- הכנה לקראת השקת האפליקציה:
- מפעילים את בדיקת האפליקציות כדי לוודא שרק האפליקציות שלכם יכולות לגשת לקטגוריות האחסון.
- מגדירים התראות תקציב לפרויקט במסוף Google Cloud.
- במסוף Firebase, אפשר לעקוב אחרי לוח הבקרה 'שימוש וחיובים' כדי לקבל תמונה כללית של השימוש בפרויקט במספר שירותי Firebase. אפשר גם להיכנס למרכז הבקרה של Usage ב-Cloud Storage כדי לקבל מידע מפורט יותר על השימוש.
- כדאי לעיין ברשימת המשימות להשקה ב-Firebase.