Cloud Storage for Firebase به شما امکان میدهد محتوای تولید شده توسط کاربر، مانند تصاویر و ویدیو را آپلود و به اشتراک بگذارید، که به شما امکان میدهد محتوای رسانهای غنی را در برنامههای خود ایجاد کنید. دادههای شما در یک سطل Google Cloud Storage ذخیره میشوند - یک راهحل ذخیرهسازی شیء در مقیاس اگزابایت با دسترسی بالا و افزونگی جهانی. Cloud Storage for Firebase به شما امکان میدهد این فایلها را مستقیماً از دستگاههای تلفن همراه و مرورگرهای وب به طور ایمن آپلود کنید و شبکههای پراکنده را به راحتی مدیریت کنید.
قبل از اینکه شروع کنی
اگر هنوز این کار را نکردهاید، مطمئن شوید که راهنمای شروع به کار با برنامههای پلتفرمهای اپل را تکمیل کردهاید. این شامل موارد زیر است:
ایجاد یک پروژه فایربیس
ثبت برنامه پلتفرم اپل خود در پروژه و اتصال برنامه به فایربیس با اضافه کردن کتابخانه فایربیس و فایل پیکربندی فایربیس (
GoogleService-Info.plist) به برنامه.
مطمئن شوید که پروژه Firebase شما در طرح قیمتگذاری Blaze با پرداخت به ازای استفاده قرار دارد، که الزامی است که از اکتبر 2024 آغاز شده است (به سوالات متداول ما مراجعه کنید). اگر در Firebase و Google Cloud تازهکار هستید، بررسی کنید که آیا واجد شرایط دریافت اعتبار 300 دلاری هستید یا خیر.
یک سطل Cloud Storage پیشفرض ایجاد کنید
از پنل ناوبری کنسول Firebase ، گزینه Storage را انتخاب کنید.
اگر پروژه شما هنوز در طرح قیمتگذاری پرداخت در محل Blaze قرار ندارد، از شما خواسته میشود پروژه خود را ارتقا دهید.
روی شروع به کار کلیک کنید.
مکانی را برای سطل پیشفرض خود انتخاب کنید.
سطلها در
US-CENTRAL1،US-EAST1، وUS-WEST1میتواند از ردیف «همیشه رایگان» برای Google Cloud Storage استفاده کند. باکتها در سایر مکانها از قیمتگذاری و میزان استفاده Google Cloud Storage پیروی میکنند.اگر مایل باشید، میتوانید بعداً چندین سطل ایجاد کنید که هر کدام مکان خاص خود را دارند.
Firebase Security Rules برای باکت پیشفرض خود پیکربندی کنید. در طول توسعه، تنظیم قوانین برای دسترسی عمومی را در نظر بگیرید.
روی انجام شد کلیک کنید.
اکنون میتوانید سطل را در تب Cloud Storage Files در کنسول Firebase مشاهده کنید. فرمت نام سطل پیشفرض شما به صورت زیر است:PROJECT_ID .firebasestorage.app
تنظیم دسترسی عمومی
Cloud Storage for Firebase یک زبان قوانین اعلانی ارائه میدهد که به شما امکان میدهد نحوه ساختاردهی دادههای خود، نحوه ایندکسگذاری آنها و زمان خواندن و نوشتن دادههای خود را تعریف کنید. به طور پیشفرض، دسترسی خواندن و نوشتن به Cloud Storage محدود شده است، بنابراین فقط کاربران احراز هویت شده میتوانند دادهها را بخوانند یا بنویسند. برای شروع بدون تنظیم Authentication ، میتوانید قوانین خود را برای دسترسی عمومی پیکربندی کنید .
این باعث میشود Cloud Storage برای همه، حتی افرادی که از برنامه شما استفاده نمیکنند، باز باشد، بنابراین هنگام تنظیم احراز هویت، حتماً Cloud Storage خود را دوباره محدود کنید.
Cloud Storage به برنامه خود اضافه کنید
برای نصب و مدیریت وابستگیهای Firebase از Swift Package Manager استفاده کنید.
- در Xcode، با باز کردن پروژه برنامه خود، به File > Add Packages بروید.
- وقتی از شما خواسته شد، مخزن SDK پلتفرمهای اپل فایربیس را اضافه کنید:
- کتابخانه Cloud Storage را انتخاب کنید.
- پرچم
-ObjCرا به بخش Other Linker Flags در تنظیمات ساخت هدف خود اضافه کنید. - پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگیهای شما در پسزمینه میکند.
https://github.com/firebase/firebase-ios-sdk.git
Cloud Storage در برنامه خود تنظیم کنید
قبل از ایجاد یا استفاده از هرگونه مرجع Firebase، Firebase را مقداردهی اولیه کنید.
اگر قبلاً محصول Firebase دیگری را راهاندازی کرده باشید، ممکن است قبلاً این کار را انجام داده باشید، اما باید مطمئن شوید که کتابخانه
FirebaseStorageرا به لیست ایمپورتهای خود اضافه کردهاید.ماژولهای
FirebaseCoreوFirebaseStorageرا درUIApplicationDelegateخود وارد کنید. همچنین توصیه میکنیمFirebaseAuthنیز اضافه کنید.سویفتیوآی
import SwiftUI import FirebaseCore import FirebaseStorage import FirebaseAuth // ...سویفت
import FirebaseCore import FirebaseStorage import FirebaseAuth // ...هدف-سی
@import FirebaseCore; @import FirebaseStorage; @import FirebaseAuth; // ...یک نمونه اشتراکی
FirebaseAppدر متد applicationapplication(_:didFinishLaunchingWithOptions:)از نماینده برنامه خود پیکربندی کنید:سویفتیوآی
// Use Firebase library to configure APIs FirebaseApp.configure()سویفت
// Use Firebase library to configure APIs FirebaseApp.configure()هدف-سی
// Use Firebase library to configure APIs [FIRApp configure];(فقط SwiftUI) یک نماینده برنامه ایجاد کنید و آن را با استفاده از
UIApplicationDelegateAdaptorیاNSApplicationDelegateAdaptorبه ساختارAppخود متصل کنید. همچنین باید swizzling نماینده برنامه را غیرفعال کنید. برای اطلاعات بیشتر، به دستورالعملهای SwiftUI مراجعه کنید.سویفتیوآی
@main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
با استفاده از برنامه پیشفرض Firebase، به سرویس Cloud Storage ارجاع دهید.
مطمئن شوید که فایل پیکربندی Firebase (
GoogleService-Info.plist) در کدبیس برنامه شما با نام مخزن Cloud Storage پیشفرض شما بهروزرسانی شده است.از این فایل پیکربندی دانلود شده برای جایگزینی فایل
GoogleService-Info.plistموجود در ریشه پروژه Xcode خود استفاده کنید. در صورت درخواست، گزینه افزودن فایل پیکربندی به همه اهداف را انتخاب کنید.مطمئن شوید که فقط همین فایل پیکربندی دانلود شدهی اخیر را در برنامهی خود دارید و نام فایل آن با کاراکترهای اضافی مانند
(2)تکمیل نشده است.
با استفاده از برنامه پیشفرض Firebase، به سرویس Cloud Storage ارجاع دهید:
سویفت
let storage = Storage.storage()
// Alternatively, explicitly specify the bucket name URL. storage = Storage.storage(url:"gs://BUCKET_NAME")
هدف-سی
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 یا coldline که پشتیبانهای کاربر یا سایر محتوای کمکاربرد را ذخیره میکند.
در هر یک از این موارد استفاده، شما باید از چندین Cloud Storage استفاده کنید .
مورد سوم در صورتی مفید است که در حال ساخت برنامهای مانند گوگل درایو باشید که به کاربران اجازه میدهد چندین حساب کاربری (مثلاً یک حساب شخصی و یک حساب کاری) داشته باشند. میتوانید از یک نمونه برنامه سفارشی Firebase برای تأیید اعتبار هر حساب اضافی استفاده کنید .
از چندین فضای Cloud Storage استفاده کنید
اگر میخواهید از یک سطل Cloud Storage غیر از سطل پیشفرض ارائه شده در بالا استفاده کنید، یا از چندین سطل Cloud Storage در یک برنامه واحد استفاده کنید، میتوانید نمونهای از FIRStorage ایجاد کنید که به سطل سفارشی شما ارجاع دهد:
سویفت
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
هدف-سی
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
کار با سطلهای وارداتی
هنگام وارد کردن یک مخزن Cloud Storage موجود به فایربیس، باید با استفاده از ابزار 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 که با آن برنامه مقداردهی اولیه شده است، ایجاد کنید:
سویفت
// 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")
هدف-سی
// 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 دیدن کنید.
چک لیست راه اندازی Firebase را مرور کنید.