فایربیس (Firebase) گوگل یک ارائه دهنده سرویس ابری برای توسعهدهندگان پلتفرمهای وب و موبایل میباشد. خدمات این پلتفرم شامل احراز هویت، ارسال پیام ابری، هاستینگ، پایگاه داده بیدرنگ، گزارش کرش اپلیکیشن و... است و از پلتفرمهای وب، اندروید و IOS پشتیبانی میکند. برخی از سرویسهای این پلتفرم رایگان هستند و برخی از آنها نیز نیازمند پرداخت هزینه برای استفاده میباشد. با ما همراه باشید.
شاید این را هم بپسندید: دورههای آموزش برنامهنویسی اندروید
فهرست مطالب
فایربیس چیست؟
فایربیس گوگل (Google Firebase) یک ارائه دهنده سرویس به توسعه دهندگان است که سهولت و سرعت را برای آنها به ارمغان میآورد. این پلتفرم قابلیتهای بینظیری را به توسعهدهندگان میدهد و در واقع با ارائه برخی خدمات، این امکان را فراهم میکند که توسعه اپلیکیشنها بسیار سادهتر شود. Firebase یک پلتفرم سمت سرور است (Backend-as-a-Service یا به اختصار Baas) که ابزارها و خدمات مختلفی را در اختیار توسعه دهندگان قرار می دهد. این سرویس بر اساس زیرساخت گوگل ساخته شده است.
استفاده از فایربیس در ایران
برای استفاده از فایربیس ممکن است به دلیل وجود تحریم با مسائلی همراه باشید. اگر سرویس مورد استفاده شما نیاز به تبادل داده با سرور شما در ایران دارد، با مشکل مواجه خواهید شد. برای حل مشکل از یک سرور خارج از ایران استفاده کنید یا از سرورهایی که قابلیت ضد تحریم را دارند، استفاده کنید.
سرویس Firebase Cloud Messaging
نوتیفیکیشنها یک روش بسیار مناسب برای جلب توجه کاربر و ترغیب آنها برای ارتباط بیشتر با اپلیکیشن شما هستند. اما چگونه میتوانیم پیام ابری ارسال کنیم؟ اینکه بتوانیم از طریق پنل مدیریت سایت خود پیامی را ارسال کنیم و تمام اعضای سایت یا اپلیکیشن یک پوش نوتیفیکیشن دریافت کنند، کاری تاثیر برانگیز است. حقیقتا پیادهسازی سرویسی که بتواند پیام شما را برای اعضا بصورت Realtime ارسال کند، نیاز به پیاده سازی کدهای زیادی سمت سرور است و بسیار نیز کاری زمانبر است. برای همین سرویسهایی در دنیا ارائه شدند که فقط با استفاده از API آن سرویس بتوانید این امکان را به اپلیکیشن یا سایت خود اضافه کنید. سرویس FCM یکی از آنهاست. این سرویس یکی از مورد استقبالترین سرویسهای پلتفرم فایربیس است و دلیل اصلی آن هم میتواند رایگان بودن این سرویس باشد. سرویس پیام ابری گوگل یک سرویس رایگان ارسال پوش نوتیفیکیشن برای اپلیکیشنهای IOS، اندروید و وب اپلیکیشن میباشد. از این سرویس به گستردگی در اپلیکیشنهای جهان و ایران استفاده میشود.
شاید به این مطلب علاقهمند باشید: آموزش Jetpack Compose در اندروید
سرویس Firebase Carshlytics
اگر بخواهیم از خدمات عالی و البته رایگان فایربیس صحبت کنیم، حتما Crashlytics را نباید فراموش کنیم. سرویس Crashlytics فایربیس از خدمات محبوب من است. فرض کنید یک اپلیکیشن اندروید یا IOS را توسعه دادهاید. اینکه اپلیکیشن شما با مشکل کرش (Crash) مواجه نشود، امری نشدنی است.
فرض کنید اپلیکیشن شما در اندروید نسخه 9 به خوبی کار کند اما به دلیل تغییراتی در SDK در نسخه اندروید 12، بعضی چیزها مانند مسائل مربوط به دسترسیها تغییر کرده باشند و همین باعث شود که در نسخه بالاتر اپلیکیشن شما کرش کند. نمیتوان به عملکرد درست و کامل اپلیکیشن در همه مدل موبایل و در همه نسخهها اعتماد کرد. در هر صورت اطلاع از این ایرادات و با خبر شدن از آنها بسیار مهم است. حال که اپلیکیشن را منتشر کردهاید و 5 هزار کاربر در حال استفاده از آن هستند، از کجا متوجه خواهید شد که اپلیکیشن بر روی چه دستگاههایی کرش شده و چطور لاگ کرش (Error Log) آن را ببینیم؟ اینجاست که این سرویس میتواند همه چیز را حل کند.
کافیست این سرویس را به اپلیکیشن اندروید یا IOS متصل کنیم. اگر در نسخهای که منتشر کردهاید اپلیکیشن شما کرش کند، تمام اطلاعات آن از قبیل لاگ ایراد (Error Log)، مدل دستگاه کرش کرده، ورژن سیستمعامل و... را جمعآوری میکند و با ارسال ایمیل، از ایرادات جدید شما را مطلع میکند. بنابراین به سرعت از هرگونه ایراد مهم که میتواند در تجربه کاربری (UX) اثر بگذارد، جلوگیری خواهید کرد.
سرویس Firebase Realtime Database
سرویس پایگاه داده بیدرنگ فایربیس اولین و اصلیترین سرویس فایربیس محسوب میشود و از یک پایگاه داده NoSql استفاده میکند. این سرویس ابری این امکان را دارد که دادهها را بیدرنگ (Realtime) و به صورت امن بین کاربران همگام سازی کند. با این سرویس کاربران میتوانند به راحتی از طریق هر دستگاهی (وب یا موبایل) به اطلاعات دسترسی داشته باشند و میتوانند با هم هماهنگ شوند. وقتی اطلاعات در فضای ابری ذخیره میشود، در همان لحظه تمام دستگاهها از اطلاعات جدید با خبر میشوند و میتوانند اطلاعات به روز شده را نمایش دهند.
این سرویس برای وضعیت آفلاین نیز بهینه شده است. هر زمان که کاربر ارتباط خود به اینترنت از دست بدهد، SDK فایربیس از یک کش محلی بر روی دستگاه برای ارائه و ذخیره تغییرات استفاده میکند. به این معنا که هر زمانی که کاربر دوباره آنلاین شود، اطلاعات محلی به صورت اتوماتیک همگام سازی میشود.
چطور اطلاعات را امن نگه میدارید؟ میتوانید از قوانین امنیت دیتابیس استفاده کنید تا مشخص کنید چه کسی به چه اطلاعاتی دسترسی داشته باشد و چگونه باید دیتابیس شما پیکربندی شود. پس اگر میخواهید مطمئن شوید که کاربران شما فقط به اطلاعات خودشان دسترسی داشته باشند یا مطمئن شوید که پیام آنها بیش از 200 کاراکتر نشود، این کار را با چند خط کد میتوانید انجام دهید. SDK این سرویس برای اندروید، IOS و جاوا اسکریپت منتشر شده است.
استفاده از این سرویس برای استفادههای محدود رایگان است.
سرویس Firebase Hosting
سرویس میزبانی فایربیس برای سمت فرانتاند وب اپلیکیشنها مورد استفاده قرار میگیرد. در وب اپلیکیشنها یکی از مهمترین مسائل، سرعت تحویل محتوا به کاربر است. کاربر نباید در استفاده از وب اپلیکیشن شما زمان زیادی را منتظر باشد. برای همین یکی از روشهای حل این مشکل، سمت فرانتاند است و فایلهای ایستایی مانند CSS و JS میتوانند به کمک یک سرویس CDN سریعتر به دست کاربر برسند. فایربیس این امکان را برای توسعهدهندگان فرانتاند فراهم کرده است.
این سرویس پر سرعت، قابل اطمینان و امن است. به کمک این سرویس مهم نیست که کاربر در کجای دنیا است. محتوا به سرعت به دست او خواهد رسید. فایلهای شما در همه جای دنیا در مراکز CDN در حافظههای SSD کش میشوند و با یک ارتباط امن اطلاعات در اختیار کاربر قرار میگیرند. از این سرویس میتوانید در ساخت اپلیکیشنهای PWA، SPA و... استفاده کنید.
شاید به این دوره علاقهمند باشید: خرید دوره اندروید (آموزش اندروید استودیو)
سرویس Firebase Firestore Database
مهم نیست که چه نوع اپلیکیشنی را در حال توسعه هستید، احتمال آن زیاد است که بخواهید اطلاعاتتان را در فضای ابری ذخیره کنید. ممکن است بخاطر این باشد که کاربران شما بخواهند اطلاعات را با دوستانشان به اشتراک بگذارند؛ یا ممکن است بخواهند به اطلاعاتشان در چندین دستگاه به صورت همزمان دسترسی داشته باشند. اما ذخیره اطلاعات در فضای ابری کار زیاد سادهای نیست. شما باید سرورهای اختصاصی خود را راهاندازی کنید که اطلاعات را در آنجا نگه دارید و همیشه از سلامت سرورها و اطلاعات خود در آنجا اطمینان داشته باشید. اگر مشکلی بر روی سرور پیش بیاید، باید زمان بسیار زیادی را برای حل مسائل آن صرف کنید تا کاربران شما به مشکلی در ارتباط با اپلیکیشن شما نداشته باشند. همچنین دغدغه بعدی این است که اگر تعداد کاربران شما بیش از مقدار مورد انتظار شد و تعداد آنها فراتر رفت، سرورهای شما بتوانند از پس این حجم کاربر برآیند.
برای راحت شدن از این مسائل سرویس پایگاه داده Firestore فایربیس به کمک شما خواهد آمد. به کمک این سرویس میتوانید اطلاعات را در فضای ابری ذخیره کنید و همچنین اطلاعات را بر روی همه دستگاهها همگام سازی کنید و یا بین چندین کاربر به اشتراک بگذارید. SDK قدرتمند این سرویس در زمانی که کاربر آفلاین است نیز بهینه شده است.
این سرویس برای استفاده محدود رایگان است.
سرویس Firebase Cloud Storage
ممکن است کاربران شما قصد آپلود عکس، ویدیو یا یک فایل را در اپلیکیشن شما داشته باشند. چگونه شما به کاربرانتان میتوانید خدمات آپلود فایل در اپلیکیشنتان بدهید؟ در چنین زمانی سرویس ذخیره سازی ابری فایربیس میتواند کمک کند. API این سرویس به کاربرانتان این امکان را میدهد که فایلهایشان را در فضای ابری فایربیس ذخیره کنند. پس از آپلود فایل، میتوان آن را با هر کس دیگری به اشتراک گذاشت. حتی میتوان قوانینی را برای فایلها در نظر گرفت که چه کسانی بتوانند به فایلهای خاص دسترسی داشته باشند. برای اینکار میتوان از سرویس Firebase Authentication کمک گرفت و کاربری که احراز هویت شده را شناخت و از طریق آن محتوای مربوط به آن کاربر را به او نمایش داد. انتقال داده نیز در محیطی امن انجام خواهد شد.
SDK این سرویس بسیار قدرتمند است. اگر در اواسط آپلود فایل کاربر ارتباط خود را با اینترنت از دست بدهد، روند آپلود مکث خواهد شد و پس از ارتباط مجدد، ادامه فرآیند آپلود از سر گرفته میشود. این قابلیت بسیاری کاربردی است؛ مخصوصا زمانی که کاربر بخواهد فایل حجیم آپلود کند و یا سرعت اینترنت پایین باشد.
شاید به این دوره علاقهمند باشید: دوره کاتلین به همراه پروژه عملی
سرویس Firebase Functions
سرویس توابع فایربیس به توسعهدهندگان موبایل امکانات شگفت انگیزی میدهد. فرض کنید اپلیکییشن خود را منتشر کردهاید اما نیاز دارید که یک تغییری در اپلیکیشن ایجاد شود. برای مثال وقتی کاربردر اپلیکیشن شما لاگین کرد، حال تصمیم دارید که یک پیغام خوش آمدید به او نشان دهید. معمولا برای انجام چنین کاری از یک API کمک گرفته میشود که اطلاعات را از سرور بگیرد و بر اساس اطلاعات دریافت شده، پیغام را به کاربر نمایش دهد.
ممکن است ابعاد تصویری که در اپلیکیشن در حال نمایش است، مناسب نباشد. برای چنین مشکلی چه راهکاری دارید؟ در برخی موارد نیز راهی نیست جز اینکه یک نسخه جدیدتر منتشر کنید. حال توابع فایربیس یک قابلیت جالبی را برای شما دارند. برای این تغییرات اصلا نیازی به انتشار نسخه جدید ندارید. بجای کارهای معمول کافیست تغییراتی که در ذهنتان دارید را به فایربیس بسپارید و کدهای خود را در آنجا قرار دهید. همه تغییرات جزئی را میتوانید به سرعت و بدون ایجاد وقفه بر روی اپلیکیشنتان انجام دهید. تاثیر برانگیز است!
البته استفاده از این سرویس نیز در بردارنده هزینه است و اگر در ایران هستید، احتمالا تهیه این سرویس برایتان سختتر خواهد شد.
شاید به این مطلب علاقه داشته باشید: خروجی iOS از کاتلین در اندروید استودیو
سرویس Firebase Authentication
سرویس احراز هویت فایربیس تمام پیاده سازی احراز هویت کاربران را برای توسعهدهندگان آماده کرده است. بسیاری از اپلیکیشنها نیاز دارند که هویت کاربر را بدانند تا بتوانند خدمات به او بدهند. به کمک سرویس Firebase Authentication کاربر میتواند با حساب جیمیل، فیسبوک، توییتر یا گیتهاب نیز احراز هویت شود. اگر هم کاربر بخواهد میتواند در اپلیکیشن ثبت نام کند. شما به او حق انتخاب را خواهید داد که چگونه خود را به شما بشناساند. حتی میتوانید بجای اینکه یک رابط کاربری برای آن طراحی کنید، از Firebase UI کمک بگیرید که رابط کاربری قابل ویرایش دارد و گوگل آن را پشتیبانی میکند. پس از اینکه کاربر وارد حساب کاربری خود شد، اطلاعات کاربر با استفاده از یک Callback به اپلیکیشن بازخواهد گشت. اطلاعات هم شامل یک شناسه یکتای کاربر (User ID) است که با آن میتوانید کاربر را بشناسید. همچنین سیستم احراز هویت فایربیس قابلیت مدیریت نشست (Session) را دارد و میتواند برای اندروید، IOS و وب مورد استفاده قرار گیرد.
از این سرویس میتوانید به صورت رایگان استفاده کنید و استفاده از آن در بردارنده هزینه نیست. با اینحال برای ذخیره سایر اطلاعات کاربر به یک دیتابیس نیاز خواهید داشت و احتمالا بهترین گزینه نیز همان سرویسهای دیتابیس فایربیس است.
سایر خدمات فایربیس
- یادگیری ماشین (Firebase Machine Learning)
- عملکرد (Firebase Performance)
- آزمایشگاه فایربیس (Firebase Test Lab)
- توزیع اپلیکیشن (Firebase App Distribution)
- آنالیز (Firebase Analytics)
- پیشبینی (Firebase Predictions)
- تست ای/بی (Firebase A/B Testing)
- پیام رسانی درون برنامهای (Firebase In-App Messaging)
- پیکربندی از راه دور (Firebase Remote Config)
- لینکهای پویا (Firebase Dynamic Links)