آشنایی با Firebase در پلاتفرم‌های Apple

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

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

پشتیبانی کتابخانه Firebase براساس پلاتفرم

جدول زیر توضیح می‌دهد که کدام کتابخانه‌های Firebase با کدام پلاتفرم‌های Apple سازگار هستند. درحال‌حاضر، visionOS و watchOS فقط توسط انجمن پشتیبانی می‌شوند. برای دستورالعمل‌های نصب و مشکلات شناخته‌شده، مخزن GitHub کیت توسعه نرم‌افزار پلاتفرم‌های Apple در Firebase را ببینید.

کتابخانه iOS macOS Mac
Catalyst
tvOS visionOS watchOS
A/B Testing
Firebase AI Logic ۱ iOS 15+‎ macOS نسخه ۱۲ به بالا Catalyst ‏۱۵ سال به بالا tvOS 15+‎ (فقط پشتیبانی انجمن) watchOS 8+‎
Analytics نسخه ۸.۹.۰ به بالا نسخه ۸.۹.۰ به بالا نسخه ۸.۹.۰ به بالا
‫Analytics بدون شناسه آگهی نسخه ۸.۹.۰ به بالا نسخه ۸.۹.۰ به بالا نسخه ۸.۹.۰ به بالا
Analytics تبدیل درون‌دستگاهی
App Check
ارائه‌دهنده DeviceCheck
watchOS 9+‎
App Check
ارائه‌دهنده App Attest
iOS 14+‎ ‫macOS نسخه ۱۱ به بالا Catalyst نسخه ۱۴ یا جدیدتر tvOS 15+‎ watchOS 9+‎
App Check
ارائه‌دهندگان سفارشی و اشکال‌زدایی
ارائه‌دهنده App Check
reCAPTCHA
App Distribution
Authentication جزئی جزئی جزئی جزئی جزئی
Cloud Firestore فقط توزیع‌های منبع
Cloud Functions
Cloud Messaging
Cloud Storage
Crashlytics
Firebase نصب
In-App Messaging
Performance Monitoring
Realtime Database
Remote Config
SQL Connect ۲
کتابخانه‌های منسوخ‌شده یا پشتیبانی‌نشده
Dynamic Links
بارگیرنده مدل Firebase ML

۱ Firebase AI Logic قبلاً «Vertex AI in Firebase» نام داشت.

۲ Firebase SQL Connect قبلاً «Firebase Data Connect» نامیده می‌شد.

کلیپ‌های برنامه

اکثر کتابخانه‌های Firebase در هدف App Clip ساخته و اجرا می‌شوند، اما بسیاری از آن‌ها به‌دلیل محدودیت‌های سیستم‌عامل زیربنایی محدود شده‌اند. مشکلات شناخته‌شده عبارت‌اند از:

  • اگر کاربران روی پیوندی ضربه بزنند و برنامه نصب نشده باشد، «پیوندهای پویا» نمی‌تواند کاربران را به «برنامه کم‌حجم» ارسال کند.
  • Firestore و Realtime Database به‌دلیل وابستگی CFStream اساسی نمی‌توانند داده‌ها را در App Clips بار کنند.

برای مشاهده فهرست کامل مشکلات شناخته‌شده App Clip، به مخزن Firebase GitHub مراجعه کنید.

GoogleService-Info.plist

به‌عنوان بخشی از افزودن Firebase به پروژه Apple، باید فایل پیکربندی GoogleService-Info.plist را به پروژه‌تان اضافه کنید. اگر می‌خواهید از چند پروژه Firebase در یک برنامه استفاده کنید، به سند مربوط به پیکربندی چند پروژه مراجعه کنید.

برای آشنایی بیشتر با جزئیات فرایند مقداردهی اولیه برنامه Firebase، سند مرجع Swift را ببینید.

Swift Package Manager

در راهنمای ما درباره ادغام Swift Package Manager بیشتر بدانید.

افزونه‌های Swift

افزونه‌های Swift کیت توسعه نرم‌افزار پلاتفرم Apple در Firebase قبلاً برافزاهای کوچک و متن‌باز برای کتابخانه‌های موجود پلاتفرم Apple در Firebase بودند که به کد شما امکان می‌دادند از ویژگی‌های خاص زبان Swift استفاده کند. این میاناهای برنامه‌سازی کاربردی از آن زمان مستقیماً به کتابخانه‌های اصلی اضافه شده‌اند و نیازی به گنجاندن جداگانه ندارند. اگر قبلاً کیت توسعه نرم‌افزار افزونه Swift در پایگاه کدتان داشتید، برای دستورالعمل‌های ارتقا به راهنمای انتقال مراجعه کنید.

SwiftUI

Firebase کاملاً از SwiftUI پشتیبانی می‌کند، هرچند راه‌اندازی آن کمی با برنامه‌های UIKit متفاوت خواهد بود تا Firebase بتواند به‌درستی در محیط کاملاً SwiftUI عمل کند. برای جزئیات بیشتر، به این پست وبلاگ نوشته پیتر فریز نگاهی بیندازید.

برنامه‌های SwiftUI باید به‌دلیل مشکل شناخته‌شده، swizzling را غیرفعال کنند. برای جزئیات بیشتر، بخش app delegate swizzling را ببینید.

تغییر رفتار نماینده برنامه

‫Firebase برخی‌از روش‌ها را در کلاس نماینده برنامه شما جابه‌جا می‌کند تا به‌طور خودکار برخی‌از سرویس‌های Firebase را به بازخوانی‌های سیستم‌عامل، مانند FCM و کد APN، متصل کند. می‌توانید با افزودن پرچم FirebaseAppDelegateProxyEnabled در فایل Info.plist برنامه و تنظیم آن روی NO، swizzling را در برنامه‌تان غیرفعال کنید.

چهار محصول Firebase از App Delegate swizzling استفاده می‌کنند: Analytics، App Distribution، Authentication، و FCM. اگر swizzling را در برنامه‌تان غیرفعال کرده‌اید و از هریک از محصولات زیر استفاده می‌کنید، به راهنمای مختص محصول مراجعه کنید تا با نحوه استفاده از محصول بدون swizzling آشنا شوید:

پشتیبانی از iOS 14

iOS 14 شامل تغییرات جدیدی در اجازه‌های کاربر درخصوص شناسه تبلیغاتی کاربر است. برای جزئیات بیشتر درباره اینکه آیا برنامه‌تان تحت تأثیر قرار می‌گیرد یا نه، راهنمای آماده‌سازی برای iOS 14 را ببینید.

پشتیبانی مداوم از Objective-C

برای تسهیل نگهداری اسناد پلاتفرم‌های Apple، ‏Firebase تصمیم گرفته است در راهنماها و سایر مطالب توسعه‌دهنده خود بر قطعه‌های Swift و نمونه‌های کد تمرکز کند. از ۱ ژانویه ۲۰۲۴، قطعه‌های Objective-C از راهنماهای ما برداشته خواهد شد. ما همچنان به حفظ به‌روز بودن مستندات مرجع برای Objective-C برای همه محصولات Firebase ادامه خواهیم داد.

منابع متن‌باز برای کیت‌های توسعه نرم‌افزار پلاتفرم Firebase Apple

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

کیت‌های توسعه نرم‌افزار Firebase برای پلاتفرم Apple

همه کیت‌های توسعه نرم‌افزار Firebase برای پلاتفرم‌های Apple به‌جز Analytics به‌عنوان کتابخانه‌های متن‌باز در مخزن عمومی Firebase GitHub ما توسعه یافته‌اند.

FirebaseUI

FirebaseUI مجموعه‌ای از کتابخانه‌های کاربردی است که روی Firebase ساخته شده است، ازجمله یک جریان واسط کاربر آماده برای اصالت‌سنجی و ابزارهای داده برای Cloud Firestore و Realtime Database. جزئیات بیشتر درباره FirebaseUI را در صفحه GitHub ما ببینید.

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

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

می‌توانید هر شروع سریع را در Xcode باز کنید، سپس آن‌ها را در دستگاه همراه یا شبیه‌ساز اجرا کنید. یا می‌توانید از این شروع‌های سریع به‌عنوان کد نمونه برای استفاده از کیت‌های توسعه نرم‌افزار Firebase استفاده کنید.