درباره Android و Firebase بیشتر بدانید

همانطور که در حال توسعه پروژه Android خود با استفاده از Firebase هستید، ممکن است مفاهیمی را پیدا کنید که برای Firebase ناآشنا یا خاص هستند. هدف این صفحه پاسخ به این سؤالات است یا منابعی را برای کسب اطلاعات بیشتر به شما معرفی می کند.

اگر درباره موضوعی که در این صفحه به آن پرداخته نشده است سؤالی دارید، به راحتی به یکی از انجمن های آنلاین ما مراجعه کنید. ما همچنین این صفحه را به صورت دوره‌ای با موضوعات جدید به‌روزرسانی می‌کنیم، بنابراین دوباره بررسی کنید تا ببینید آیا موضوعی را که می‌خواهید درباره آن بیاموزید اضافه کرده‌ایم یا خیر!

افزونه Firebase Assistant برای اندروید استودیو

Firebase Assistant یک افزونه Android Studio است که برنامه اندروید شما را با یک پروژه Firebase ثبت می‌کند و فایل‌های پیکربندی Firebase، افزونه‌ها و وابستگی‌های لازم را به پروژه Android شما اضافه می‌کند - همه از داخل Android Studio!

برای استفاده از Firebase Assistant دستورالعمل‌های صفحه شروع Android را دنبال کنید. مطمئن شوید که از به‌روزترین نسخه‌های Android Studio و Firebase Assistant استفاده می‌کنید (به File > Check for updates بروید).

هنگامی که محصولات Firebase خاصی را برای افزودن به برنامه خود انتخاب می کنید، دستیار Firebase به طور خودکار وابستگی های مورد نیاز را در فایل app/build.gradle شما اعلام می کند. با این حال، برای استفاده از ویژگی‌های Firebase که فراتر از قابلیت‌های کنونی دستیار Firebase هستند، ممکن است بخواهید برخی تغییرات دستی در این وابستگی‌ها ایجاد کنید:

  • اگر می‌خواهید از Firebase Android BoM استفاده کنید، وابستگی‌ها را در ماژول (سطح برنامه) فایل Gradle (معمولا app/build.gradle ) برای وارد کردن پلتفرم BoM به‌روزرسانی کنید. همچنین باید نسخه‌ها را از هر خط وابستگی کتابخانه Firebase حذف کنید.

  • اگر می‌خواهید از کتابخانه افزونه‌های Kotlin استفاده کنید، خط وابستگی اضافه شده به ماژول (سطح برنامه) فایل Gradle (معمولا app/build.gradle ) را تغییر دهید تا به جای آن از نسخه ktx کتابخانه Firebase استفاده کنید.

خدمات Google - افزونه و فایل پیکربندی

به عنوان بخشی از افزودن Firebase به پروژه Android خود، باید افزونه google-services و یک فایل پیکربندی google-services.json را به پروژه خود اضافه کنید.

اگر Firebase را از طریق کنسول Firebase ، Management REST API یا Firebase CLI به پروژه Android خود اضافه کنید، باید افزونه و فایل پیکربندی را به صورت دستی به پروژه خود اضافه کنید. با این حال، اگر از Firebase Assistant استفاده می‌کنید، این کارها به‌طور خودکار در حین راه‌اندازی برای شما انجام می‌شوند.

برای آشنایی با نحوه کار افزونه و فایل پیکربندی سرویس‌های Google با هم از اسناد Android دیدن کنید.

Firebase Android BoM (بیل مواد)

Firebase Android BoM (Bill of Materials) شما را قادر می‌سازد تمام نسخه‌های کتابخانه Firebase خود را با تعیین تنها یک نسخه مدیریت کنید - نسخه BoM.

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

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

درباره پشتیبانی Gradle از پلتفرم های BoM بیشتر بیاموزید.

در اینجا نحوه استفاده از Firebase Android BoM برای اعلام وابستگی ها در ماژول (سطح برنامه) فایل Gradle (معمولا app/build.gradle ) آورده شده است. هنگام استفاده از BoM، شما نسخه های جداگانه کتابخانه را در خطوط وابستگی مشخص نمی کنید.

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

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

در اینجا چند سوال متداول درباره استفاده از Firebase Android BoM وجود دارد:

مقایسه نسخه های Firebase BoM

ماژول های کتابخانه افزونه های Kotlin (KTX).

ماژول های کتابخانه Firebase Kotlin (KTX) همراهان کوچکی برای ماژول های اصلی کتابخانه Firebase هستند و می توانید از آنها برای نوشتن کدهای زیبا و اصطلاحی Kotlin استفاده کنید.

برای استفاده از یک ماژول کتابخانه KTX در برنامه خود، وابستگی خود را به پسوند -ktx تغییر دهید. هر ماژول KTX به طور خودکار به ماژول کتابخانه اصلی وابستگی دارد، بنابراین نیازی به گنجاندن هر دو وابستگی در برنامه شما نیست.

dependencies {
  // Import the BoM for the Firebase platform (learn more)
  implementation platform('com.google.firebase:firebase-bom:32.4.0')

  // Declare the main module
  implementation 'com.google.firebase:firebase-analytics'

  // Declare the KTX module instead (which automatically has a dependency on the main module)
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

هر ماژول KTX پسوندهای نحوی مختلفی از ماژول اصلی را ارائه می دهد. به عنوان مثال، ماژول Analytics KTX ثبت رویدادها را ساده تر می کند:

قبل (با استفاده از ماژول اصلی)

val analytics = FirebaseAnalytics.getInstance();
val bundle = Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);

بعد (به جای آن از ماژول KTX استفاده کنید)

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

همه محصولات Firebase یک ماژول KTX را ارائه می دهند به جز Firebase ML و App Indexing.

اگر هنوز این کار را نکرده اید، اسناد مرجع API را برای ماژول های KTX بررسی کنید.

ماژول های ویژگی و Play Feature Delivery

از ماه می 2021 (Firebase BoM v28.0.0)، SDK های Firebase Android را می توان در ماژول های ویژگی پویا که جدا از ماژول برنامه پایه شما نصب می شوند، استفاده کرد.

برای فعال کردن پشتیبانی از ماژول‌های ویژگی پویا، وابستگی زیر را به فایل build.gradle ماژول پایه خود اضافه کنید:

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}

اکنون که پشتیبانی از ماژول پویا را اضافه کرده‌اید، می‌توانید وابستگی‌های Firebase SDK (با یا بدون Firebase BoM) را به ماژول‌های برنامه خود اضافه کنید و از آنها همانطور که معمولاً استفاده می‌کنید استفاده کنید.

به عنوان مثال، اگر برنامه شما از پایگاه داده بیدرنگ برای تامین یک ویژگی بیدرنگ خاص استفاده می کند، می توانید به جای ماژول پایه، وابستگی firebase-database را به build.gradle ماژول ویژگی اضافه کنید. این باعث کاهش حجم دانلود برای اکثر کاربران می شود.

هنگام استفاده از Firebase SDK در ماژول های ویژگی، از هشدارهای زیر آگاه باشید:

  • محصولاتی مانند Dynamic Links یا Firebase In-App Messaging که به رویداد Analytics first_open متکی هستند، ممکن است در صورت استفاده در یک ماژول ویژگی پویا، این رویداد را از دست بدهند.

  • هنگام استفاده از Cloud Firestore و Authentication با هم، همیشه باید هر دو را در یک ماژول قرار دهید. اگر این امکان پذیر نیست، مطمئن شوید که Authentication قبل از Cloud Firestore بارگیری شده است. در غیر این صورت، برخی از عملیات Cloud Firestore ممکن است دارای وضعیت احراز هویت نادرست باشند.

  • هنگام استفاده از firebase-crashlytics-ndk به عنوان وابستگی به ماژول ویژگی پویا، باید ویژگی unstrippedNativeLibsDir را در فایل build.gradle برنامه خود تنظیم کنید، همانطور که در مستندات Crashlytics NDK توضیح داده شده است.

برای اطلاعات بیشتر در مورد ماژول‌های ویژگی و Play Feature Delivery، به نمای کلی از Play Feature Delivery مراجعه کنید.

پلاگین خدمات Google Gradle در مقابل خدمات Google Play در مقابل فروشگاه Google Play

چندین بخش از اکوسیستم Google، Firebase و Android دارای قراردادهای نامگذاری مشابهی هستند. در اینجا توضیح مختصری برای هر کدام آورده شده است:

پلاگین Gradle خدمات گوگل
یک پلاگین Gradle ( com.google.gms.google-services ) که در زمان ساخت اجرا می شود تا اطمینان حاصل شود که برنامه شما دارای پیکربندی مناسب برای دسترسی به Firebase و Google API است.
علیرغم نامش، این افزونه هیچ ارتباطی با خدمات Google Play ندارد (به ورودی بعدی مراجعه کنید) و تأثیری بر قابلیت های برنامه شما در زمان اجرا ندارد.
این افزونه همچنین فایل google-services.json را که به عنوان بخشی از راه اندازی Firebase به برنامه خود اضافه می کنید، پردازش می کند. درباره افزونه خدمات Google Gradle بیشتر بدانید.
خدمات گوگل پلی
یک سرویس پس‌زمینه نامرئی که در دستگاه Android اجرا می‌شود و چندین API رایج Google (مانند Google Maps و Google Sign In) را در اختیار برنامه‌های دستگاه قرار می‌دهد.
با متمرکز کردن این APIهای رایج در یک سرویس واحد، اندازه برنامه‌های دیگر را کاهش می‌دهد و به دستگاه اجازه می‌دهد تا به‌روزرسانی‌های امنیتی خودکار و بهبود ویژگی‌ها را بدون به‌روزرسانی سیستم‌عامل دریافت کند. درباره خدمات Google Play بیشتر بیاموزید.
فروشگاه Google Play
فروشگاهی برای دانلود برنامه‌ها، فیلم‌ها، کتاب‌ها و موارد دیگر در دستگاه Android
شما به عنوان یک توسعه دهنده، توزیع، انتشار و غیره را برای برنامه خود از طریق کنسول Google Play مدیریت می کنید. اگر دستگاهی دارای فروشگاه Google Play باشد، خدمات Google Play را نیز اجرا می کند (به ورودی قبلی مراجعه کنید). درباره فروشگاه Google Play برای توسعه دهندگان بیشتر بیاموزید.
خدمات بازی های Google Play
مجموعه ای از API ها برای توسعه دهندگان بازی های موبایل
درباره خدمات بازی های Google Play و نحوه ادغام Firebase با پروژه خدمات بازی های Google Play خود بیشتر بیاموزید.

منابع منبع باز برای Firebase Android SDK

Firebase از توسعه منبع باز پشتیبانی می کند و ما مشارکت و بازخورد جامعه را تشویق می کنیم.

Firebase Android SDK

اکثر SDK های Firebase Android به عنوان کتابخانه های منبع باز در مخزن عمومی Firebase GitHub ما توسعه یافته اند. ما فعالانه کار می کنیم تا به زودی کتابخانه های Firebase توسعه یافته خصوصی باقی مانده را به GitHub عمومی خود منتقل کنیم!

نمونه های شروع سریع

Firebase مجموعه‌ای از نمونه‌های شروع سریع را برای اکثر APIهای Firebase در Android نگهداری می‌کند. این شروع‌های سریع را در مخزن عمومی Firebase GitHub ما بیابید.

می‌توانید هر شروع سریع را به‌عنوان یک پروژه Android Studio باز کنید، سپس آن‌ها را روی یک دستگاه تلفن همراه یا یک دستگاه مجازی (AVD) اجرا کنید. یا می توانید از این شروع سریع به عنوان کد نمونه برای استفاده از Firebase SDK استفاده کنید.

سایر موضوعات مورد علاقه