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

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

قبل از اینکه شروع کنی

  1. اگر هنوز این کار را نکرده‌اید، مطمئن شوید که راهنمای شروع به کار با برنامه‌های اندروید را تکمیل کرده‌اید. این شامل موارد زیر است:

    • ایجاد یک پروژه فایربیس

    • ثبت برنامه اندروید خود در پروژه و اتصال برنامه به فایربیس با اضافه کردن وابستگی‌های فایربیس، افزونه سرویس‌های گوگل و فایل پیکربندی فایربیس ( google-services.json ) به برنامه.

  2. مطمئن شوید که پروژه Firebase شما در طرح قیمت‌گذاری Blaze با پرداخت به ازای استفاده قرار دارد، که الزامی است که از اکتبر 2024 آغاز شده است (به سوالات متداول ما مراجعه کنید). اگر در Firebase و Google Cloud تازه‌کار هستید، بررسی کنید که آیا واجد شرایط دریافت اعتبار 300 دلاری هستید یا خیر.

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

  1. از پنل ناوبری کنسول Firebase ، گزینه Storage را انتخاب کنید.

    اگر پروژه شما هنوز در طرح قیمت‌گذاری پرداخت در محل Blaze قرار ندارد، از شما خواسته می‌شود پروژه خود را ارتقا دهید.

  2. روی شروع به کار کلیک کنید.

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

  4. Firebase Security Rules برای باکت پیش‌فرض خود پیکربندی کنید. در طول توسعه، تنظیم قوانین برای دسترسی عمومی را در نظر بگیرید.

  5. روی انجام شد کلیک کنید.

اکنون می‌توانید سطل را در تب Cloud Storage Files در کنسول Firebase مشاهده کنید. فرمت نام سطل پیش‌فرض شما به صورت زیر است: PROJECT_ID .firebasestorage.app

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

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

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

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

در فایل 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:34.4.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 استفاده خواهد کرد.

(جایگزین) اضافه کردن وابستگی‌های کتابخانه 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:22.0.1")
}

Cloud Storage در برنامه خود تنظیم کنید

  1. مطمئن شوید که فایل پیکربندی Firebase ( google-services.json ) در کدبیس برنامه شما با نام مخزن Cloud Storage پیش‌فرض شما به‌روزرسانی شده است.

    1. فایل پیکربندی به‌روزرسانی‌شده‌ی خود را دریافت کنید.

    2. از این فایل پیکربندی دانلود شده برای جایگزینی فایل google-services.json موجود در دایرکتوری ماژول (سطح برنامه) برنامه خود استفاده کنید.

      مطمئن شوید که فقط همین فایل پیکربندی دانلود شده‌ی اخیر را در برنامه‌ی خود دارید و نام فایل آن با کاراکترهای اضافی مانند (2) تکمیل نشده است.

  2. با ایجاد یک نمونه از FirebaseStorage به فضای Cloud Storage خود دسترسی پیدا کنید:

    Kotlin

    storage = Firebase.storage
    // Alternatively, explicitly specify the bucket name URL.
    // val storage = Firebase.storage("gs://BUCKET_NAME")

    Java

    FirebaseStorage storage = FirebaseStorage.getInstance();
    // Alternatively, explicitly specify the bucket name URL.
    // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");

شما آماده‌اید تا از Cloud Storage استفاده کنید!

مرحله بعدی؟ یاد بگیرید که چگونه یک مرجع Cloud Storage ایجاد کنید .

تنظیمات پیشرفته

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

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

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

در هر یک از این موارد استفاده، شما باید از چندین Cloud Storage استفاده کنید .

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

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

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

Kotlin

// 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 موجود به فایربیس، باید با استفاده از ابزار 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 سفارشی هستید، می‌توانید یک نمونه از FirebaseStorage که با آن برنامه مقداردهی اولیه شده است، ایجاد کنید:

Kotlin

// 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");

مراحل بعدی