בעזרת Cloud Storage for Firebase אתם יכולים להעלות ולשתף תוכן כמו תמונות, אודיו, וידאו וקבצים אחרים (כולל תוכן שנוצר על ידי משתמשים), וכך ליצור תוכן מדיה עשירה באפליקציות שלכם. הנתונים שלכם מאוחסנים בקטגוריה של Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט, עם זמינות גבוהה ויתירות גלובלית. Cloud Storage for Firebase מאפשר להעלות את הקבצים האלה בצורה מאובטחת ישירות ממכשירים ניידים ומדפדפני אינטרנט, ומתמודד בקלות עם רשתות לא יציבות.
לפני שמתחילים
אם עדיין לא עשיתם זאת, הקפידו להשלים את המדריך לתחילת העבודה עם אפליקציות Flutter. זה כולל:
יצירת פרויקט ב-Firebase.
התקנה והפעלה של ערכות ה-SDK של Firebase ל-Flutter.
מוודאים שפרויקט Firebase נמצא בתוכנית התמחור Blaze בתשלום לפי שימוש, שנדרשת כדי להשתמש ב-Cloud Storage for Firebase. אם אתם משתמשים חדשים ב-Firebase וב-Google Cloud, בדקו אם אתם זכאים לקרדיט בשווי 300$ לתקופת ניסיון בחינם.
יצירת קטגוריה של Cloud Storage שמוגדרת כברירת מחדל
במסוף Firebase, נכנסים אל Databases & Storage > Storage.
אם הפרויקט שלכם עדיין לא בתוכנית התמחור Blaze בתשלום לפי שימוש, תתבקשו לשדרג את הפרויקט.
לוחצים על שנתחיל?.
בוחרים מיקום לקטגוריית ברירת המחדל.
קטגוריות ב-
, ב-US-CENTRAL1 וב-US-EAST1 יכולות לנצל את התוכנית Always Free של Google Cloud Storage. קטגוריות בכל המיקומים האחרים כפופות לתמחור ולשימוש של Google Cloud Storage.US-WEST1אם רוצים, אפשר בהמשך ליצור כמה קטגוריות, שלכל אחת מהן יש מיקום משלה.
מגדירים את Firebase Security Rules לקטגוריית ברירת המחדל. במהלך הפיתוח, כדאי להגדיר את הכללים לגישה ציבורית.
לוחצים על סיום.
עכשיו אפשר לראות את הקטגוריה במסוף Firebase (עוברים אל הכרטיסייה Databases & Storage > Storage > Files).
הפורמט של שם הקטגוריה שמוגדר כברירת מחדל הוא 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 עם כמה משתמשים מאומתים באותה אפליקציה
התרחיש הראשון מתאים אם יש לכם משתמשים ברחבי העולם ואתם רוצים לאחסן את הנתונים שלהם קרוב אליהם. לדוגמה, אתם יכולים ליצור קטגוריות בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של משתמשים באזורים האלה, וכך לצמצם את זמן האחזור.
התרחיש השני שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אתם יכולים להגדיר קטגוריה אזורית או קטגוריה במספר אזורים לאחסון תמונות או תוכן אחר שהגישה אליו תכופה, וקטגוריה מסוג Nearline או Coldline לאחסון גיבויים של משתמשים או תוכן אחר שהגישה אליו לא תכופה.
בשני התרחישים האלה, כדאי להשתמש בכמה קטגוריות של Cloud Storage.
התרחיש השלישי שימושי אם אתם מפתחים אפליקציה, כמו Google Drive, שמאפשרת למשתמשים להתחבר לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). אתם יכולים להשתמש במופע מותאם אישית של אפליקציית Firebase כדי לאמת כל חשבון נוסף.
שימוש בכמה קטגוריות של 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, עוקבים אחרי לוח הבקרה Usage and billing במסוף Firebase. אפשר גם להיכנס ללוח הבקרה Usage של Cloud Storage כדי לקבל נתוני שימוש מפורטים יותר.
עיינו ברשימת המשימות להשקה של Firebase.