مهاجرت به جدیدترین Firebase SDK برای Swift (نسخه 4.0.0)

در نسخه 4.0.0 Firebase iOS SDK برای Swift، تغییراتی را برای پیروی از قراردادهای نام‌گذاری در دستورالعمل‌های طراحی API Swift گنجانده‌ایم. برای رفع هرگونه خطا یا هشداری که ممکن است هنگام به‌روزرسانی نسخه Firebase iOS SDK برنامه خود دریافت کنید، مراحل این راهنمای انتقال را دنبال کنید.

تغییرات در نسخه جدید

تغییرات زیر در Swift SDK در همه محصولات Firebase اعمال شده است:

  • حذف پیشوند FIR در بین نام ها برای همه ثابت ها، پروتکل ها، کلاس ها، enum ها و تعاریف نوع.
  • تغییر نام FIRApp به FirebaseApp .
  • تغییر نام FIROptions به FirebaseOptions .

برای فهرست کامل تغییرات، به بخش فهرست تفصیلی تغییرات مراجعه کنید.

رفع خطاها

بهترین راه برای رفع خطاهای ناشی از این تغییرات استفاده از گفتگوی Fix-it در Xcode است.

  1. هنگامی که پروژه به روز شده خود را در فضای کاری Xcode خود باز می کنید، خطاهای ناشی از تغییرات نامگذاری در ناوبری مسئله ظاهر می شود.
  2. روی خطا کلیک کنید و آن را با پیشنهاد موجود در گفتگوی Fix-it حل کنید.

تضادهای نامگذاری را حل کنید

برای حل تداخل نامگذاری، از فضای نام ارائه شده توسط ماژول استفاده کنید. به عنوان مثال، در مورد FIRUser که اکنون User است، ممکن است بخواهید بین کلاس/structur User خود و کلاس User Firebase تفاوت قائل شوید.

@import Firebase
...
var firebaseUser: Firebase.User?

لیست تفصیلی تغییرات

قبلی جدید
توابع
FIRAnalytics
logEvent(withName:parameters:) logEvent(_:parameters:)
استفاده قبلی:
FIRAnalytics.logEvent(withName: "com.myapp.appStart", parameters: nil)
استفاده جدید:
Analytics.logEvent("com.myapp.appStart", parameters: nil)
setUserPropertyString(_:forName:) setUserProperty(_:forName:)
استفاده قبلی:
FIRAnalytics.setUserPropertyString("mechanic", forName: "job")
استفاده جدید:
Analytics.setUserProperty("mechanic", forName: "job")
کلاس ها
FIRAnalytics Analytics
ثابت ها
FIRAnalyticsEventAddPaymentInfo AnalyticsEventAddPaymentInfo
FIRAnalyticsEventAddToCart AnalyticsEventAddToCart
FIRAnalyticsEventAddToWishlist AnalyticsEventAddToWishlist
FIRAnalyticsEventAppOpen AnalyticsEventAppOpen
FIRAnalyticsEventBeginCheckout AnalyticsEventBeginCheckout
FIRAnalyticsEventCampaignDetails AnalyticsEventCampaignDetails
FIRAnalyticsEventCheckoutProgress AnalyticsEventCheckoutProgress
FIRAnalyticsEventEarnVirtualCurrency AnalyticsEventEarnVirtualCurrency
FIRAnalyticsEventEcommercePurchase AnalyticsEventEcommercePurchase
FIRAnalyticsEventGenerateLead AnalyticsEventGenerateLead
FIRAnalyticsEventJoinGroup AnalyticsEventJoinGroup
FIRAnalyticsEventLevelUp AnalyticsEventLevelUp
FIRAnalyticsEventLogin AnalyticsEventLogin
FIRAnalyticsEventPostScore AnalyticsEventPostScore
FIRAnalyticsEventPresentOffer AnalyticsEventPresentOffer
FIRAnalyticsEventPurchaseRefund AnalyticsEventPurchaseRefund
FIRAnalyticsEventRemoveFromCart AnalyticsEventRemoveFromCart
FIRAnalyticsEventSearch AnalyticsEventSearch
FIRAnalyticsEventSelectContent AnalyticsEventSelectContent
FIRAnalyticsEventSetCheckoutOption AnalyticsEventSetCheckoutOption
FIRAnalyticsEventShare AnalyticsEventShare
FIRAnalyticsEventSignUp AnalyticsEventSignUp
FIRAnalyticsEventSpendVirtualCurrency AnalyticsEventSpendVirtualCurrency
FIRAnalyticsEventTutorialBegin AnalyticsEventTutorialBegin
FIRAnalyticsEventTutorialComplete AnalyticsEventTutorialComplete
FIRAnalyticsEventUnlockAchievement AnalyticsEventUnlockAchievement
FIRAnalyticsEventViewItem AnalyticsEventViewItem
FIRAnalyticsEventViewItemList AnalyticsEventViewItemList
FIRAnalyticsEventViewSearchResults AnalyticsEventViewSearchResults
FIRAnalyticsParameterAchievementID AnalyticsParameterAchievementID
FIRAnalyticsParameterAdNetworkClickID AnalyticsParameterAdNetworkClickID
FIRAnalyticsParameterAffiliation AnalyticsParameterAffiliation
FIRAnalyticsParameterCampaign AnalyticsParameterCampaign
FIRAnalyticsParameterCharacter AnalyticsParameterCharacter
FIRAnalyticsParameterCheckoutStep AnalyticsParameterCheckoutStep
FIRAnalyticsParameterCheckoutOption AnalyticsParameterCheckoutOption
FIRAnalyticsParameterContent AnalyticsParameterContent
FIRAnalyticsParameterContentType AnalyticsParameterContentType
FIRAnalyticsParameterCoupon AnalyticsParameterCoupon
FIRAnalyticsParameterCreativeName AnalyticsParameterCreativeName
FIRAnalyticsParameterCreativeSlot AnalyticsParameterCreativeSlot
FIRAnalyticsParameterCurrency AnalyticsParameterCurrency
FIRAnalyticsParameterDestination AnalyticsParameterDestination
FIRAnalyticsParameterEndDate AnalyticsParameterEndDate
FIRAnalyticsParameterFlightNumber AnalyticsParameterFlightNumber
FIRAnalyticsParameterGroupID AnalyticsParameterGroupID
FIRAnalyticsParameterIndex AnalyticsParameterIndex
FIRAnalyticsParameterItemBrand AnalyticsParameterItemBrand
FIRAnalyticsParameterItemCategory AnalyticsParameterItemCategory
FIRAnalyticsParameterItemID AnalyticsParameterItemID
FIRAnalyticsParameterItemLocationID AnalyticsParameterItemLocationID
FIRAnalyticsParameterItemName AnalyticsParameterItemName
FIRAnalyticsParameterItemList AnalyticsParameterItemList
FIRAnalyticsParameterItemVariant AnalyticsParameterItemVariant
FIRAnalyticsParameterLevel AnalyticsParameterLevel
FIRAnalyticsParameterLocation AnalyticsParameterLocation
FIRAnalyticsParameterMedium AnalyticsParameterMedium
FIRAnalyticsParameterNumberOfNights AnalyticsParameterNumberOfNights
FIRAnalyticsParameterNumberOfPassengers AnalyticsParameterNumberOfPassengers
FIRAnalyticsParameterNumberOfRooms AnalyticsParameterNumberOfRooms
FIRAnalyticsParameterOrigin AnalyticsParameterOrigin
FIRAnalyticsParameterPrice AnalyticsParameterPrice
FIRAnalyticsParameterQuantity AnalyticsParameterQuantity
FIRAnalyticsParameterScore AnalyticsParameterScore
FIRAnalyticsParameterSearchTerm AnalyticsParameterSearchTerm
FIRAnalyticsParameterShipping AnalyticsParameterShipping
FIRAnalyticsParameterSignUpMethod AnalyticsParameterSignUpMethod
FIRAnalyticsParameterSource AnalyticsParameterSource
FIRAnalyticsParameterStartDate AnalyticsParameterStartDate
FIRAnalyticsParameterTax AnalyticsParameterTax
FIRAnalyticsParameterTerm AnalyticsParameterTerm
FIRAnalyticsParameterTransactionID AnalyticsParameterTransactionID
FIRAnalyticsParameterTravelClass AnalyticsParameterTravelClass
FIRAnalyticsParameterValue AnalyticsParameterValue
FIRAnalyticsParameterVirtualCurrencyName AnalyticsParameterVirtualCurrencyName
FIRAnalyticsUserPropertySignUpMethod AnalyticsUserPropertySignUpMethod
قبلی جدید
توابع
FIRAuth.h
init?(app:) auth(app:)
استفاده قبلی:
let auth = FIRAuth(app: myApp)
استفاده جدید:
let auth = Auth.auth(app: myApp)
FIRUser.h
updateEmail(_:completion:) updateEmail(to:completion:)
استفاده قبلی:
user.updateEmail("firebase_rox42@gmail.com") { error in
  // Check for error
}
استفاده جدید:
user.updateEmail(to: "firebase_rox42@gmail.com") { error in
  // Check for error
}
updatePassword(_:completion:) updatePassword(to:completion:)
استفاده قبلی:
user.updatePassword("hunter2") { error in
  // Check for error
}
استفاده جدید:
user.updatePassword(to: "hunter2") { error in
  // Check for error
}
profileChangeRequest() createProfileChangeRequest()
استفاده قبلی:
let request = user.profileChangeRequest()
استفاده جدید:
let request = user.createProfileChangeRequest()
getTokenWithCompletion(_:) getToken(completion:)
استفاده قبلی:
user.getTokenWithCompletion() { token, error in
  // Handle token or error here
}
استفاده جدید:
user.getToken() { token, error in
  // Handle token or error here
}
کلاس ها
FIRAdditionalUserInfo AdditionalUserInfo
FIRActionCodeInfo ActionCodeInfo
FIRAuth Auth
FIRAuthCredential AuthCredential
FIRAuthDataResult AuthDataResult
FIRAuthErrors AuthErrors
FIRSecureTokenService SecureTokenService
FIRUser User
FIRUserProfileChangeRequest UserProfileChangeRequest
FIRUserInfo UserInfo
FIREmailAuthProvider EmailAuthProvider
FIRFacebookAuthProvider FacebookAuthProvider
FIRGitHubAuthProvider GitHubAuthProvider
FIRGoogleAuthProvider GoogleAuthProvider
FIROAuthProvider OAuthProvider
FIRTwitterAuthProvider TwitterAuthProvider
ثابت ها
FIRAuthErrorDomain AuthErrorDomain
FIRAuthErrorNameKey AuthErrorNameKey
FIREmailAuthProviderID EmailAuthProviderID
FIRFacebookAuthProviderID FacebookAuthProviderID
FIRGitHubAuthProviderID GitHubAuthProviderID
FIRGoogleAuthProviderID GoogleAuthProviderID
FIRTwitterAuthProviderID TwitterAuthProviderID
FIRAuthStateDidChange AuthStateDidChange
اعلانات نوع
FIRAuthStateDidChangeListenerHandle AuthStateDidChangeListenerHandle
FIRAuthStateDidChangeListenerBlock AuthStateDidChangeListenerBlock
FIRAuthDataResultCallback AuthDataResultCallback
FIRAuthResultCallback AuthResultCallback
FIRProviderQueryCallback ProviderQueryCallback
FIRSendPasswordResetCallback SendPasswordResetCallback
FIRConfirmPasswordResetCallback ConfirmPasswordResetCallback
FIRVerifyPasswordResetCodeCallback VerifyPasswordResetCodeCallback
FIRApplyActionCodeCallback ApplyActionCodeCallback
FIRVerificationResultCallback VerificationResultCallback
Enums
FIRActionDataKey ActionDataKey
FIRActionCodeOperation ActionCodeOperation
FIRAuthErrorCode AuthErrorCode
قبلی جدید
توابع
FIRAnalyticsConfiguration.sharedInstance() AnalyticsConfiguration.shared()
FIRApp.configure(withName:options:) FirebaseApp.configure(name:options:)
استفاده قبلی:
FIRApp.configure(withName: "myCustomApp", options: customOptions)
استفاده جدید:
FirebaseApp.configure(name: "myCustomApp", options: customOptions)
FIRApp.defaultApp() FirebaseApp.app()
FIRApp.init?(named:) FirebaseApp.app(name:)
استفاده قبلی:
let app = FIRApp(named: "myCustomApp")
استفاده جدید:
let app = FirebaseApp.app(name: "myCustomApp")
FIRApp.allApps() FirebaseApp.allApps
استفاده قبلی:
for app in FIRApp.allApps() {
  print("App name: \(app.name)")
}
استفاده جدید:
for app in FirebaseApp.allApps {
  print("App name: \(app.name)")
}
FIRConfiguration.sharedInstance() FirebaseConfiguration.shared()
FIROptions.default() FirebaseOptions.defaultOptions()
خواص
FIROptions
GCMSenderID gcmSenderID
کلاس ها
FIRAnalyticsConfiguration AnalyticsConfiguration
FIRApp FirebaseApp
FIRConfiguration FirebaseConfiguration
FIROptions FirebaseOptions
اعلانات نوع
FIRAppVoidBoolCallback FirebaseAppVoidBoolCallback
Enums
FIRLoggerLevel FirebaseLoggerLevel
قبلی جدید
توابع
FIRCrashMessage(_:) FirebaseCrashMessage(_:)
قبلی جدید
خواص
FIRDatabase.h
persistenceEnabled isPersistenceEnabled
کلاس ها
FIRDataSnapshot DataSnapshot
FIRDatabase Database
FIRDatabaseQuery DatabaseQuery
FIRDatabaseReference DatabaseReference
FIRMutableData MutableData
FIRServerValue ServerValue
FIRTransactionResult TransactionResult
اعلانات نوع
FIRDatabaseHandle DatabaseHandle
Enums
FIRDataEventType DataEventType
قبلی جدید
توابع
// FIRDynamicLinks.h
dynamicLink(fromUniversalLinkURL:) dynamicLink(fromUniversalLink:)
کلاس ها
FIRDynamicLink DynamicLink
FIRDLRetrievalDelegate DLRetrievalDelegate
FIRDynamicLinks DynamicLinks
FIRDynamicLinkGoogleAnalyticsParameters DynamicLinkGoogleAnalyticsParameters
FIRDynamicLinkIOSParameters DynamicLinkIOSParameters
FIRDynamicLinkItunesConnectAnalyticsParameters DynamicLinkItunesConnectAnalyticsParameters
FIRDynamicLinkAndroidParameters DynamicLinkAndroidParameters
FIRDynamicLinkSocialMetaTagParameters DynamicLinkSocialMetaTagParameters
FIRDynamicLinkNavigationInfoParameters DynamicLinkNavigationInfoParameters
FIRDynamicLinkComponentsOptions DynamicLinkComponentsOptions
FIRDynamicLinkComponents DynamicLinkComponents
اعلانات نوع
FIRDynamicLinkResolverHandler DynamicLinkResolverHandler
FIRDynamicLinkUniversalLinkHandler DynamicLinkUniversalLinkHandler
FIRDynamicLinkShortenerCompletion DynamicLinkShortenerCompletion
Enums
FIRDynamicLinkMatchConfidence DynamicLinkMatchConfidence
FIRDLRequiredMatchConfidence DLRequiredMatchConfidence
FIRDLRetrieveResult DLRetrieveResult
FIRShortDynamicLinkPathLength ShortDynamicLinkPathLength
قبلی جدید
توابع
FIRInstanceID.h
getWithHandler() getIDWithHandler()
استفاده قبلی:
FIRInstanceID.instanceID().get { identity, error in
 // Check identity and error
}
استفاده جدید:
instanceID.instanceID().getID { identity, error in
  // Check identity and error
}
deleteWithHandler() deleteIDWithHandler()
استفاده قبلی:
FIRInstanceID.instanceID().delete { error in
  // Check error
}
استفاده جدید:
instanceID.instanceID().deleteID { error in
  // Check error
}
کلاس ها
FIRInstanceID InstanceID
ثابت ها
FIRInstanceIDScopeFirebaseMessaging InstanceIDScopeFirebaseMessaging
FIRInstanceIDTokenRefresh InstanceIDTokenRefresh
اعلانات نوع
FIRInstanceIDTokenHandler InstanceIDTokenHandler
FIRInstanceIDDeleteTokenHandler InstanceIDDeleteTokenHandler
FIRInstanceIDHandler InstanceIDHandler
FIRInstanceIDDeleteHandler InstanceIDDeleteHandler
Enums
FIRInstanceIDError InstanceIDError
FIRInstanceIDAPNSTokenType InstanceIDAPNSTokenType
قبلی جدید
کلاس ها
FIRInvites Invites
FIRInvitesTargetApplication InvitesTargetApplication
FIRReceivedInvite ReceivedInvite
ثابت ها
FIRInvitesErrorDomain InvitesErrorDomain
Enums
FIRInvitesErrorCode InvitesErrorCode
FIRReceivedInviteMatchType ReceivedInviteMatchType
پروتکل ها
FIRInviteBuilder InviteBuilder
FIRInviteDelegate InviteDelegate
قبلی جدید
توابع
FIRMsaging
connect(completion:) connect(handler:)
کلاس ها
FIRMessagingMessageInfo MessagingMessageInfo
FIRMessagingRemoteMessage MessagingRemoteMessage
FIRMessaging Messaging
ثابت ها
FIRMessagingSendSuccess MessagingSendSuccess
FIRMessagingSendError MessagingSendError
FIRMessagingMessagesDeleted MessagingMessagesDeleted
FIRMessagingConnectionStateChanged MessagingConnectionStateChanged
FIRMessagingRegistrationTokenRefreshed MessagingRegistrationTokenRefreshed
اعلانات نوع
FIRMessagingFCMTokenFetchCompletion MessagingFCMTokenFetchCompletion
FIRMessagingDeleteFCMTokenCompletion MessagingDeleteFCMTokenCompletion
Enums
FIRMessagingError MessagingError
FIRMessagingMessageStatus MessagingMessageStatus
FIRMessagingAPNSTokenType MessagingAPNSTokenType
پروتکل ها
FIRMessagingDelegate MessagingDelegate
قبلی جدید
توابع
FIRRemoteConfig
setDefaultsFromPlistFileName(_:) setDefaults(fromPlist:)
setDefaultsFromPlistFileName(_:namespace) setDefaults(fromPlist:namespace)
کلاس ها
FIRRemoteConfigValue RemoteConfigValue
FIRRemoteConfigSettings RemoteConfigSettings
FIRRemoteConfig RemoteConfig
ثابت ها
FIRNamespaceGoogleMobilePlatform NamespaceGoogleMobilePlatform
FIRRemoteConfigThrottledEndTimeInSecondsKey RemoteConfigThrottledEndTimeInSecondsKey
FIRRemoteConfigErrorDomain RemoteConfigErrorDomain
اعلانات نوع
FIRRemoteConfigFetchCompletion RemoteConfigFetchCompletion
Enums
FIRRemoteConfigFetchStatus RemoteConfigFetchStatus
FIRRemoteConfigError RemoteConfigError
FIRRemoteConfigSource RemoteConfigSource
قبلی جدید
توابع
مرجع FIRstorage
put(_:) putData(_:)
put(_:metadata:) putData(_:metadata:)
put(_:metadata:completion:) putData(_:metadata:completion:)
putFile(_:) putFile(from:)
putFile(_:metadata:) putFile(from:metadata:)
putFile(_:metadata:completion:) putFile(from:metadata:completion:)
data(withMaxSize:completion:) getData(maxSize:completion:)
metadata(completion:) getMetadata(completion:)
update(_:completion:) updateMetadata(_:completion:)
کلاس ها
FIRStorage Storage
FIRStorageDownloadTask StorageDownloadTask
FIRStorageMetadata StorageMetadata
FIRStorageObservableTask StorageObservableTask
FIRStorageReference StorageReference
FIRStorageTask StorageTask
FIRStorageTaskSnapshot StorageTaskSnapshot
FIRStorageUploadTask StorageUploadTask
ثابت ها
FIRStorageErrorDomain StorageErrorDomain
Enums
FIRStorageTaskStatus StorageTaskStatus
FIRStorageErrorCode StorageErrorCode
پروتکل ها
FIRStorageTaskManagement StorageTaskManagement
اعلانات نوع
FIRStorageHandle StorageHandle
FIRStorageVoidDataError StorageVoidDataError
FIRStorageVoidError StorageVoidError
FIRStorageVoidMetadata StorageVoidMetadata
FIRStorageVoidMetadataError StorageVoidMetadataError
FIRStorageVoidSnapshot StorageVoidSnapshot
FIRStorageVoidURLError StorageVoidURLError