با Cloud Storage در Android شروع کنید

Cloud Storage for Firebase به شما امکان می‌دهد محتوای تولید شده توسط کاربر، مانند تصاویر و ویدیو را آپلود و به اشتراک بگذارید، که به شما امکان می‌دهد محتوای رسانه‌ای غنی را در برنامه‌های خود بسازید. داده‌های شما در یک سطل Google Cloud Storage - یک راه‌حل ذخیره‌سازی شی در مقیاس اگزابایت با در دسترس بودن بالا و افزونگی جهانی ذخیره می‌شود. Cloud Storage for Firebase به شما امکان می‌دهد این فایل‌ها را مستقیماً از دستگاه‌های تلفن همراه و مرورگرهای وب به‌طور ایمن آپلود کنید و به راحتی شبکه‌های ناقص را مدیریت کنید.

پیش نیازها

اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید .

یک سطل پیش‌فرض Cloud Storage ایجاد کنید

  1. از صفحه پیمایش کنسول Firebase ، Storage را انتخاب کنید، سپس روی شروع به کار کلیک کنید.

  2. پیام‌های مربوط به ایمن کردن داده‌های Cloud Storage خود را با استفاده از قوانین امنیتی مرور کنید. در طول توسعه، قوانین خود را برای دسترسی عمومی تنظیم کنید .

  3. مکانی را برای سطل Cloud Storage پیش فرض خود انتخاب کنید.

    • این تنظیم مکان، مکان منبع پیش‌فرض Google Cloud Platform (GCP) پروژه شما است. توجه داشته باشید که این مکان برای سرویس‌های GCP در پروژه شما استفاده می‌شود که به تنظیمات مکان نیاز دارند، به‌ویژه پایگاه داده Cloud Firestore و برنامه App Engine شما (که در صورت استفاده از Cloud Scheduler لازم است).

    • اگر نمی‌توانید مکانی را انتخاب کنید، پروژه شما از قبل دارای یک مکان منبع GCP پیش‌فرض است. در حین ایجاد پروژه یا هنگام راه‌اندازی سرویس دیگری که نیاز به تنظیم مکان دارد تنظیم شده است.

    اگر در طرح Blaze هستید، می‌توانید چندین سطل ایجاد کنید که هر کدام مکان خاص خود را دارند.

  4. روی Done کلیک کنید.

دسترسی عمومی را تنظیم کنید

Cloud Storage for Firebase یک زبان قواعد اعلامی را ارائه می دهد که به شما امکان می دهد نحوه ساختار داده های شما، نحوه نمایه سازی و زمان خواندن و نوشتن داده های شما را تعریف کنید. به طور پیش‌فرض، دسترسی خواندن و نوشتن به Cloud Storage محدود شده است، بنابراین فقط کاربران تأیید شده می‌توانند داده‌ها را بخوانند یا بنویسند. برای شروع بدون تنظیم Authentication ، می توانید قوانین خود را برای دسترسی عمومی پیکربندی کنید .

این باعث می‌شود که Cloud Storage برای هر کسی باز شود، حتی افرادی که از برنامه شما استفاده نمی‌کنند، بنابراین هنگام تنظیم احراز هویت، مطمئن شوید که Cloud Storage خود را دوباره محدود کنید.

Cloud Storage SDK را به برنامه خود اضافه کنید

در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، وابستگی را برای Cloud Storage اضافه کنید. کتابخانه برای اندروید توصیه می‌کنیم از Firebase Android BoM برای کنترل نسخه‌سازی کتابخانه استفاده کنید.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.3.0"))

    // Add the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage")
}

با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخه‌های سازگار کتابخانه‌های Firebase Android استفاده می‌کند.

(جایگزین) وابستگی های کتابخانه Firebase را بدون استفاده از BoM اضافه کنید

اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید، ما قویاً توصیه می کنیم از BoM برای مدیریت نسخه های کتابخانه استفاده کنید، که تضمین می کند همه نسخه ها سازگار هستند.

dependencies {
    // Add the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage:21.0.0")
}
به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ از اکتبر 2023 ( Firebase BoM 32.5.0) ، توسعه دهندگان Kotlin و Java می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).

Cloud Storage راه اندازی کنید

اولین قدم برای دسترسی به سطل Cloud Storage ، ایجاد یک نمونه از FirebaseStorage است:

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

شما آماده شروع استفاده از Cloud Storage هستید!

ابتدا، بیایید نحوه ایجاد یک مرجع Cloud Storage را بیاموزیم.

راه اندازی پیشرفته

چند مورد استفاده وجود دارد که نیاز به تنظیمات اضافی دارد:

اولین مورد استفاده اگر کاربرانی در سراسر جهان دارید و می خواهید داده های آنها را در نزدیکی آنها ذخیره کنید، عالی است. برای مثال، می‌توانید در ایالات متحده، اروپا و آسیا سطل‌هایی ایجاد کنید تا داده‌ها را برای کاربران آن مناطق ذخیره کنید تا تأخیر را کاهش دهید.

مورد دوم اگر داده هایی با الگوهای دسترسی متفاوت دارید مفید است. به عنوان مثال: می‌توانید یک سطل چند منطقه‌ای یا منطقه‌ای راه‌اندازی کنید که تصاویر یا سایر محتوایی که اغلب به آنها دسترسی دارند را ذخیره می‌کند، و یک سطل نزدیک یا سرد که پشتیبان‌گیری‌های کاربر یا سایر محتوایی که به‌ندرت به آن‌ها دسترسی دارند را ذخیره می‌کند.

در هر یک از این موارد استفاده، می‌خواهید از چند سطل Cloud Storage استفاده کنید .

مورد سوم در صورتی مفید است که در حال ساختن برنامه‌ای مانند Google Drive هستید که به کاربران امکان می‌دهد چندین حساب وارد شده (به عنوان مثال، یک حساب شخصی و یک حساب کاری) داشته باشند. می توانید از یک نمونه برنامه Firebase سفارشی برای احراز هویت هر حساب اضافی استفاده کنید .

از چند سطل Cloud Storage استفاده کنید

اگر می‌خواهید از یک سطل Cloud Storage غیر از سطل پیش‌فرض ارائه‌شده در بالا استفاده کنید، یا از چند سطل Cloud Storage در یک برنامه استفاده کنید، می‌توانید نمونه‌ای از FirebaseStorage ایجاد کنید که به سطل سفارشی شما ارجاع دهد:

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("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 که با آن برنامه مقداردهی شده است ایجاد کنید:

Kotlin+KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Java

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

مراحل بعدی