Cloud Storage for Firebase מאפשרת להעלות ולשתף תוכן שנוצר על ידי משתמשים, כמו תמונות וסרטונים, וכך להוסיף תוכן של מדיה עשירה לאפליקציות. הנתונים מאוחסנים בקטגוריה Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. Cloud Storage for Firebase מאפשר להעלות את הקבצים האלה באופן מאובטח ישירות ממכשירים ניידים ומדפדפני אינטרנט, תוך התמודדות קלה עם רשתות לא יציבות.
לפני שמתחילים
אם עדיין לא עשיתם זאת, כדאי לעיין במדריך למתחילים בנושא אפליקציות לפלטפורמות של Apple. בין המקורות האלה:
יצירת פרויקט Firebase.
רישום האפליקציה של מוצרי הפלטפורמה של Apple בפרויקט וחיבור האפליקציה ל-Firebase באמצעות הוספה של ספריית Firebase וקובץ התצורה של Firebase (
GoogleService-Info.plist
) לאפליקציה.
צריך לוודא שהפרויקט ב-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 כשמגדירים אימות.
הוספה של Cloud Storage לאפליקציה
שימוש ב-Swift Package Manager כדי להתקין ולנהל יחסי תלות ב-Firebase.
- ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים אל קובץ > הוספת חבילות.
- כשמופיעה בקשה, מוסיפים את המאגר של Firebase SDK לפלטפורמות של Apple:
- בוחרים את הספרייה Cloud Storage.
- מוסיפים את הדגל
-ObjC
לקטע Other Linker Flags (דגלים אחרים של קישור) בהגדרות ה-build של היעד. - בסיום, Xcode יתחיל לפתור את יחסי התלות ולהוריד אותם באופן אוטומטי ברקע.
https://github.com/firebase/firebase-ios-sdk.git
הגדרת Cloud Storage באפליקציה
צריך לאתחל את Firebase לפני שיוצרים או משתמשים בהפניה ל-Firebase.
יכול להיות שכבר עשיתם זאת אם כבר הגדרתם מוצר אחר של Firebase, אבל חשוב לוודא שהוספתם את הספרייה
FirebaseStorage
לרשימת הייבוא.מייבאים את המודול
FirebaseCore
ואת המודולFirebaseStorage
ב-UIApplicationDelegate
. מומלץ להוסיף גם את המאפייןFirebaseAuth
.SwiftUI
import SwiftUI import FirebaseCore import FirebaseStorage import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseStorage import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseStorage; @import FirebaseAuth; // ...
מגדירים מופע משותף של
FirebaseApp
בשיטהapplication(_:didFinishLaunchingWithOptions:)
של הנציג של האפליקציה:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
(SwiftUI בלבד) יוצרים נציג אפליקציה ומצרפים אותו למבנה
App
באמצעותUIApplicationDelegateAdaptor
אוNSApplicationDelegateAdaptor
. צריך גם להשבית את החלפת הקוד של נציג האפליקציה. מידע נוסף זמין בהוראות ל-SwiftUI.SwiftUI
@main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
אחזור של הפניה לשירות Cloud Storage באמצעות אפליקציית Firebase שמוגדרת כברירת מחדל.
מוודאים שקובץ התצורה של Firebase (
GoogleService-Info.plist
) בקוד של האפליקציה מעודכן בשם של קטגוריית ברירת המחדל Cloud Storage.משתמשים בקובץ התצורה שהורדתם כדי להחליף את הקובץ
GoogleService-Info.plist
הקיים בתיקיית השורש של פרויקט Xcode. אם מוצגת בקשה, בוחרים להוסיף את קובץ התצורה לכל היעדים.חשוב לוודא שבאפליקציה שלכם נמצא רק קובץ התצורה שהורדתם לאחרונה, ושאין בשם הקובץ תווים נוספים, כמו
(2)
.
מקבלים הפניה לשירות Cloud Storage באמצעות אפליקציית Firebase שמוגדרת כברירת מחדל:
Swift
let storage = Storage.storage()
// Alternatively, explicitly specify the bucket name URL. storage = Storage.storage(url:"gs://BUCKET_NAME")
Objective-C
FIRStorage *storage = [FIRStorage storage];
// Alternatively, explicitly specify the bucket name URL. // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"];
עכשיו הכול מוכן ואפשר להתחיל להשתמש ב-Cloud Storage!
השלב הבא? איך יוצרים קובץ עזר של Cloud Storage
הגדרה מתקדמת
יש כמה תרחישים לדוגמה שבהם נדרשת הגדרה נוספת:
- שימוש בקטגוריות Cloud Storage במספר אזורים גיאוגרפיים
- שימוש בקטגוריות Cloud Storage בסוגי אחסון שונים
- שימוש בקטגוריות Cloud Storage עם כמה משתמשים מאומתים באותה אפליקציה
התרחיש לדוגמה הראשון מושלם אם יש לכם משתמשים ברחבי העולם ואתם רוצים לאחסן את הנתונים שלהם בסביבתם. לדוגמה, אפשר ליצור קטגוריות בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של המשתמשים באזורים האלה ולקצר את זמן האחזור.
התרחיש השני לדוגמה שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אתם יכולים להגדיר קטגוריה רב-אזורית או קטגוריה שמאחסנת תמונות או תוכן אחר שמתבצעת אליו גישה לעיתים קרובות, וקטגוריה של קו ברשימת Nearline או Colline שמאחסנת גיבויים של משתמשים או תוכן אחר שניגשים אליו לעיתים רחוקות.
בשני תרחישים לדוגמה האלה, כדאי להשתמש בכמה קטגוריות Cloud Storage.
התרחיש השלישי יכול להיות שימושי אם אתם מפתחים אפליקציה כמו Google Drive, שמאפשרת למשתמשים להיכנס לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). אפשר להשתמש במכונה מותאמת אישית של Firebase App כדי לאמת כל חשבון נוסף.
שימוש בכמה קטגוריות Cloud Storage
אם רוצים להשתמש בקטגוריה Cloud Storage שונה מברירת המחדל שצוינה למעלה, או להשתמש במספר קטגוריות Cloud Storage באפליקציה אחת, אפשר ליצור מופע של FIRStorage
שמפנה לקטגוריה בהתאמה אישית:
Swift
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
Objective-C
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"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://BUCKET_NAME
תוכלו למצוא את מספר הפרויקט כפי שמתואר במבוא לפרויקטים של Firebase.
השינוי הזה לא משפיע על קטגוריות חדשות שנוצרו, כי אצלן אמצעי הבקרה של הגישה מוגדרים כברירת מחדל לאפשר גישה ל-Firebase. זוהי פעולה זמנית שתתבצע באופן אוטומטי בעתיד.
שימוש באפליקציית Firebase בהתאמה אישית
אם אתם מפתחים אפליקציה מורכבת יותר באמצעות FirebaseApp
מותאם אישית, תוכלו ליצור מופע של Storage
שמאותחלל באמצעות האפליקציה הזו:
Swift
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
Objective-C
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
השלבים הבאים
הכנה להשקת האפליקציה:
מפעילים את App Check כדי לוודא שרק האפליקציות שלכם יכולות לגשת למאגרי האחסון.
מגדירים התראות תקציב לפרויקט במסוף Google Cloud.
במסוף Firebase, אפשר לעקוב אחרי לוח הבקרה של השימוש והחיוב כדי לקבל תמונה כללית של השימוש בפרויקט במספר שירותי Firebase. אפשר גם להיכנס ללוח הבקרה Cloud Storage Usage כדי לקבל מידע מפורט יותר על השימוש.
לעיין ברשימת המשימות להשקה של Firebase.