همانطور که در حال توسعه پروژه 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
و یک فایل پیکربندی
را به پروژه خود اضافه کنید.
اگر 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 وجود دارد:
در اینجا نحوه لغو نسخه کتابخانه تعیین شده در BoM آمده است:
خط واردات پلت فرم BoM را حفظ کنید.
در خط وابستگی کتابخانه، نسخه کتابخانه مورد نظر را مشخص کنید. برای مثال، اگر میخواهید از نسخه 18.0.0 از App Indexing صرفنظر از اینکه چه نسخهای در BoM تعیین شده است، اما میخواهید از نسخههای BoM برای احراز هویت و Cloud Firestore استفاده کنید، چگونه وابستگیها را اعلام کنید:
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.4.0') // Declare the dependency for the App Indexing library and specify a version // This specified library version overrides the version designated in the BoM. implementation 'com.google.firebase:firebase-appindexing:18.0.0' // Declare the dependencies for the other Firebase libraries without specifying versions // These libraries will use the versions designated in the BoM. implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' }
خیر. برای افزودن و استفاده از کتابخانه های Firebase در برنامه خود، باید هر کتابخانه را به عنوان یک خط وابستگی جداگانه در فایل Gradle ماژول (سطح برنامه) خود (معمولا app/build.gradle
) اعلام کنید.
استفاده از BoM تضمین میکند که نسخههای کتابخانههای Firebase در برنامه شما سازگار هستند، اما BoM در واقع آن کتابخانههای Firebase را به برنامه شما اضافه نمیکند.
آره! هنگامی که خطوط وابستگی کتابخانه Firebase خاص خود را اعلام می کنید، فقط از نام کتابخانه KTX استفاده کنید، مانند:
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-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' }
خیر. Firebase Android BoM فقط نسخههای کتابخانه را برای کتابخانههای Firebase مدیریت میکند. تنها استثنا درج Google Mobile Ads SDK است زیرا معمولاً در برنامه های Firebase استفاده می شود.
حتی اگر هر کتابخانه Firebase به طور مستقل نسخه شده است، آنها با هم ساخته شده اند تا اطمینان حاصل شود که آخرین نسخه هر کتابخانه با بقیه سازگار است.
با استفاده از BoM برای مدیریت نسخه های کتابخانه Firebase برنامه خود، نیازی به ردیابی اینکه کدام نسخه از کتابخانه Firebase با کتابخانه Firebase دیگر سازگار است، ندارید.
حتی اگر در حال حاضر فقط از یک کتابخانه Firebase در برنامه خود استفاده می کنید، ما همچنان استفاده از BoM را توصیه می کنیم زیرا هرگز نمی دانید چه زمانی ممکن است بخواهید از کتابخانه Firebase دیگری استفاده کنید!
بله، هنوز هم می توانید از BoM استفاده کنید! برای Gradle 5.0 و بالاتر، پشتیبانی BoM به طور خودکار فعال می شود. با این حال، برای نسخه های قبلی Gradle، فقط باید ویژگی BoM را فعال کنید و BoM را کمی متفاوت وارد کنید.
به فایل
settings.gradle
خود،enableFeaturePreview('IMPROVED_POM_SUPPORT')
را اضافه کنید.به فایل Gradle ماژول (سطح برنامه) خود (معمولا
app/build.gradle
)، BoM را مانند یک کتابخانه معمولی (بدون اصلاح کنندهplatform
) وارد کنید، مانند:dependencies { // Import the Firebase BoM implementation '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 SDK در GitHub دیدن کنید.
مقایسه نسخه های 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 استفاده کنید.
سایر موضوعات مورد علاقه
- وابستگی های Firebase Android SDK به خدمات Google Play
- برنامه Firebase خود را به Google Play پیوند دهید
- با پروژه خدمات Play Games خود یکپارچه شوید