نکات کلیدی
Firebase یک پلتفرم Backend-as-a-Service (BaaS) است که ابزارهای آماده برای توسعه اپلیکیشن ارائه میدهد. Firebase توسعهدهندگان را از نیاز به ساخت زیرساخت سرور از صفر آزاد میکند — تحلیل، پایگاههای داده، احراز هویت، اعلانهای فشار و موارد بسیار دیگر از طریق SDK در دسترس هستند.
Google در سال ۲۰۱۴ Firebase را به قیمت ۱۰۰ میلیون دلار خریداری کرد و با Google Cloud Platform ادغام نمود. Firebase بیش از ۲۰ محصول ارائه میدهد که میتوانند بر اساس نیاز پروژه ترکیب شوند. اکثر سرویسها دارای محدودیت رایگان سخاوتمندانه (Spark Plan) هستند و برای رشد، طرح پرداخت بهازای مصرف (Blaze Plan) در دسترس است.
ادغام Firebase با ایجاد یک پروژه در Firebase Console و افزودن فایل پیکربندی (GoogleService-Info.plist برای iOS، google-services.json برای Android) آغاز میشود. Firebase از iOS، Android، Flutter، React Native، Unity و اپلیکیشنهای وب پشتیبانی میکند و آن را به یک راهحل جهانی برای هر پلتفرمی تبدیل میکند.
Firebase Analytics یک ابزار تحلیل رایگان است که دادههایی درباره رفتار کاربران جمعآوری میکند. Firebase Analytics هسته کل پلتفرم است — دادههای تحلیل توسط تمام سرویسهای دیگر Firebase برای هدفیابی و شخصیسازی استفاده میشود.
Firebase Crashlytics محبوبترین ابزار برای ردیابی crashهای اپلیکیشن است. Crashlytics بهطور خودکار stack traces، لاگها و دادههای دستگاه را جمعآوری میکند در هر بار crash اپلیکیشن. گزارشها بر اساس نوع خطا گروهبندی میشوند و امکان شناسایی سریع بحرانیترین مشکلات را فراهم میکنند.
Crashlytics از لاگهای سفارشی، کلیدها و استثناهای غیرکشنده پشتیبانی میکند. استثناهای غیرکشنده امکان ردیابی خطاهای مدیریتشده را بدون crash اپلیکیشن فراهم میکنند — به عنوان مثال، یک درخواست API ناموفق یا استثنا در منطق تجاری.
Firebase Performance ابزاری برای نظارت بر عملکرد اپلیکیشن است. Performance زمان راهاندازی، تأخیر شبکه، رندر صفحه و درخواستهای HTTP را ردیابی میکند. تنگناهایی را شناسایی میکند که اپلیکیشن را کند کرده و تجربه کاربری را کاهش میدهند.
ادغام Firebase Analytics با Crashlytics قابلیت منحصربهفردی را فراهم میکند تا نه تنها آنچه crash شده، بلکه اقدامات کاربر قبل از crash را نیز مشاهده کنید. IT Sectr از این ترکیب برای تشخیص سریع باگ در محیط تولید استفاده میکند — زمان از تشخیص تا رفع ۳–۴ برابر کاهش مییابد.
Firebase دو پایگاه داده NoSQL و ذخیرهسازی ابری برای فایلها ارائه میدهد. انتخاب بین Firestore و Realtime Database به سناریوی استفاده بستگی دارد — هر دو پایگاه داده دادهها را بهصورت بیدرنگ همگامسازی میکنند اما معماری متفاوتی دارند.
| ویژگی | Cloud Firestore | Realtime Database |
|---|---|---|
| مدل داده | مجموعهها و اسناد (اشیاء JSON) | یک درخت JSON بزرگ |
| پرسوجوها | ترکیبی، ایندکسها، مرتبسازی، فیلتر | ساده، مرتبسازی از یک گره |
| مقیاسپذیری | خودکار، چند منطقهای | تک منطقه، محدودیت پهنای باند |
| قیمتگذاری | حجم خواندن/نوشتن/حذف | حجم ترافیک و ذخیرهسازی |
| حالت آفلاین | پشتیبانی میشود (کش دیسک) | پشتیبانی میشود (کش حافظه) |
| بهترین استفاده | چت، شبکههای اجتماعی، پرسوجوهای پیچیده | چت، بازیها، همگامسازی ساده |
Cloud Storage ذخیرهسازی فایلها (تصاویر، ویدئو، صدا) است. Firebase Storage بهطور خودکار تا پتابایت مقیاس میشود و آپلود قابل اعتماد با قابلیت ادامه در صورت قطع اتصال ارائه میدهد. برای دسترسی امن با Firebase Auth ادغام میشود.
Firestore به دلیل پرسوجوهای منعطف و مقیاسپذیری برای پروژههای جدید توصیه میشود. Realtime Database برای چتهای ساده و بازیهای با حجم داده کم انتخاب مناسبی است. IT Sectr معمولاً از Firestore به عنوان پایگاه داده اصلی و از Realtime Database فقط برای همکاریهای بیدرنگ استفاده میکند.
Firebase Authentication یک راهحل آماده برای احراز هویت کاربران است. Firebase Auth از ایمیل/رمز عبور، Google، Apple، Facebook، Twitter، GitHub، احراز هویت تلفنی و ورود ناشناس پشتیبانی میکند. کل فرآیند احراز هویت در سمت کلاینت از طریق SDK پیادهسازی میشود.
Google Sign-In یکی از محبوبترین ارائهدهندگان احراز هویت است. ادغام Google Sign-In ۱۵–۳۰ دقیقه از طریق Firebase Console طول میکشد و نیاز به توسعه بکاند ندارد. کاربران با یک کلیک و با استفاده از حساب Google خود وارد میشوند.
Firebase Auth همچنین توابع بکاند را از طریق Admin SDK فراهم میکند. میتوانید کاربران ایجاد کنید، پروفایلها را بهروزرسانی کنید، جلسات را مدیریت کنید و توکنهای ID را در سرور تأیید کنید. ادغام با Cloud Functions امکان ایجاد سناریوهای احراز هویت سفارشی را فراهم میکند.
Security Rules — مکانیزم امنیتی Firebase برای پایگاههای داده و ذخیرهسازی. قوانین دسترسی به صورت اعلامی توصیف میشوند و در هر درخواست بررسی میشوند. به عنوان مثال: اجازه خواندن سند را فقط در صورتی بدهید که userId با کاربر احراز هویتشده فعلی برابر باشد.
مثال یک Security Rule ساده برای Firestore:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
match /posts/{postId} {
allow read: if true;
allow write: if request.auth.uid == resource.data.authorId;
}
}
}
Firebase Cloud Messaging (FCM) سرویسی برای ارسال اعلانهای فشار است. FCM روزانه تا ۵۰۰ میلیارد پیام پردازش میکند و از iOS، Android و Web پشتیبانی میکند. پیامها به notification messages (نمایش خودکار) و data messages (پردازش در اپلیکیشن) تقسیم میشوند.
Firebase Remote Config امکان تغییر رفتار اپلیکیشن را بدون انتشار نسخه جدید فراهم میکند. Remote Config برای آزمایش A/B، فعال/غیرفعال کردن ویژگیها، سفارشیسازی رابط کاربری و تغییرات پویای پارامترها (به عنوان مثال، فرکانس تبلیغات، متن paywall) استفاده میشود.
Firebase A/B Testing ابزاری برای انجام آزمایشها است. دو نسخه از اپلیکیشن با پارامترهای مختلف ایجاد کنید و تأثیر بر معیارها را اندازهگیری کنید (تبدیل، نگهداشت، درآمد). آزمایشها بهطور خودکار معناداری آماری را محاسبه کرده و برنده را تعیین میکنند.
Firebase Dynamic Links پیوندهای هوشمندی هستند که کاربر را به مکان مناسب در اپلیکیشن هدایت میکنند. Dynamic Links حتی اگر اپلیکیشن نصب نشده باشد نیز کار میکنند — در این صورت به صفحه فروشگاه میروند و پس از نصب، زمینه را بازیابی کرده و به صفحه هدف هدایت میکنند.
IT Sectr از ترکیب Remote Config + A/B Testing برای بهینهسازی همه سناریوهای کلیدی استفاده میکند: از صفحه خوشآمدگویی تا فرآیند پرداخت. پارامترهای Remote Config را میتوان در زمان واقعی از طریق Firebase Console تغییر داد — این انعطافپذیری را فراهم میکند که در چرخههای انتشار سنتی در دسترس نیست.
Firebase Test Lab یک راهحل ابری برای آزمایش خودکار اپلیکیشنها است. Test Lab آزمایشهای شما را روی دستگاههای واقعی Google اجرا میکند در پیکربندیهای مختلف (نسخههای مختلف سیستمعامل، رزولوشن صفحه، زبانها). از Espresso (Android)، XCUITest (iOS) و آزمایشهای Robo پشتیبانی میکند.
Firebase App Distribution پلتفرمی برای توزیع نسخههای بتای اپلیکیشن است. App Distribution جایگزین TestFlight برای Android میشود و آن را برای iOS تکمیل میکند. میتوانید APK/AAB آپلود کنید و از طریق ادغام با Crashlytics از آزمایشکنندگان بازخورد دریافت کنید.
ترکیب Test Lab و App Distribution کیفیت را در تمام مراحل توسعه تضمین میکند: از آزمایشهای خودکار روی دستگاههای واقعی تا آزمایش بتا با کاربران واقعی. ادغام با CI/CD (GitHub Actions، Bitrise) فرآیند را کاملاً خودکار میکند.
| سرویس | هدف | محدودیت رایگان | iOS | Android | Web |
|---|---|---|---|---|---|
| Analytics | جمعآوری و تحلیل رویدادهای کاربر | نامحدود | + | + | + |
| Crashlytics | گزارش crash | نامحدود | + | + | - |
| Firestore | پایگاه داده NoSQL | ۱ گیگابایت ذخیرهسازی | + | + | + |
| Realtime DB | پایگاه داده بیدرنگ | ۱ گیگابایت ذخیرهسازی | + | + | + |
| Auth | احراز هویت کاربران | نامحدود | + | + | + |
| Cloud Messaging | اعلانهای فشار | نامحدود | + | + | + |
| Remote Config | مدیریت پارامترها | نامحدود | + | + | + |
| Performance | نظارت بر عملکرد | نامحدود | + | + | + |
| Test Lab | آزمایش ابری | ۱۰ آزمایش/روز | + | + | - |
| App Distribution | توزیع نسخه بتا | نامحدود | + | + | - |
| Cloud Functions | کد سرور در صورت تقاضا | ۲ میلیون فراخوانی/ماه | + | + | + |
سؤالات متداول
Firebase دارای طرح رایگان Spark Plan با محدودیتهای سخاوتمندانه است — تحلیل، گزارش crash و احراز هویت رایگان و نامحدود هستند. طرح Blaze Plan (پرداخت بهازای مصرف) زمانی لازم است که محدودیتها فراتر روند — به عنوان مثال، بیش از ۱ گیگابایت در Firestore یا بیش از ۲ میلیون فراخوانی Cloud Functions. اکثر استارتاپها در ۱–۲ سال اول از محدودیتهای رایگان فراتر نمیروند.
برای اکثر پروژههای جدید، Firestore توصیه میشود. Firestore مقیاسپذیری بهتر، پرسوجوهای غنیتر و تکرار چند منطقهای ارائه میدهد. Realtime Database فقط برای سناریوهای ساده بیدرنگ (چت با حجم داده کم، بازیهای بیدرنگ) انتخاب شود.
بله، Firebase از پروتکلهای باز استفاده میکند و دادهها قابل خروجی هستند. Firestore دارای خروجی مدیریتشده به BigQuery و Google Cloud Storage است. احراز هویت با خروجی هش رمزهای عبور قابل انتقال است. Cloud Functions را میتوان به راحتی در هر فریمورک بکاند بازنویسی کرد.
Firebase از حفاظت چندلایه استفاده میکند: رمزنگاری در سطح انتقال (TLS) و در سطح ذخیرهسازی (AES-256). Security Rules کنترل دسترسی اعلامی را فراهم میکنند. Firebase همچنین با استانداردهای SOC 1/2/3، ISO 27001 و GDPR مطابقت دارد.
Firebase به دلیل مسدود شدن سرویسهای Google بهطور محدود در چین کار میکند. برای بازار چین باید از جایگزینهای محلی استفاده کرد — به عنوان مثال، Alibaba Cloud Push به جای FCM، یا LeanCloud به جای Firebase. Firebase Analytics و Crashlytics نیز بدون VPN در دسترس نخواهند بود.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.