迁移到最新的 Firebase SDK for Swift (v4.0.0)

在 4.0.0 版的 Firebase iOS SDK for Swift 中,我们进行了一些更改,以遵循 Swift API 设计准则中的命名规范。如需修正更新应用的 Firebase iOS SDK 版本时可能收到的任何错误或警告,请按照此迁移指南中的步骤操作。

新版本中的更改

在所有 Firebase 产品中,Swift SDK 都进行了以下更改:

  • 移除了所有常量、协议、类、枚举和类型定义的名称中的 FIR 前缀。
  • FIRApp 重命名为 FirebaseApp
  • FIROptions 重命名为 FirebaseOptions

如需查看变更的完整列表,请参阅“详细变更列表”部分

解决错误

要解决这些更改导致的错误,最好的方法是在 Xcode 中使用“Fix-it”对话框。

  1. 当您在 Xcode 工作区中打开更新后的项目时,问题导航器中会显示因更改命名而产生的错误。
  2. 点击相应错误,然后按照“Fix-it”对话框中的建议解决该错误。

解决命名冲突

如需解决命名冲突,请使用模块提供的命名空间。例如,对于 FIRUser(现在是 User),您可能需要区分 User 类/结构体和 Firebase User 类。

@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")
FIRAnalyticsAnalytics
常量
FIRAnalyticsEventAddPaymentInfoAnalyticsEventAddPaymentInfo
FIRAnalyticsEventAddToCartAnalyticsEventAddToCart
FIRAnalyticsEventAddToWishlistAnalyticsEventAddToWishlist
FIRAnalyticsEventAppOpenAnalyticsEventAppOpen
FIRAnalyticsEventBeginCheckoutAnalyticsEventBeginCheckout
FIRAnalyticsEventCampaignDetailsAnalyticsEventCampaignDetails
FIRAnalyticsEventCheckoutProgressAnalyticsEventCheckoutProgress
FIRAnalyticsEventEarnVirtualCurrencyAnalyticsEventEarnVirtualCurrency
FIRAnalyticsEventEcommercePurchaseAnalyticsEventEcommercePurchase
FIRAnalyticsEventGenerateLeadAnalyticsEventGenerateLead
FIRAnalyticsEventJoinGroupAnalyticsEventJoinGroup
FIRAnalyticsEventLevelUpAnalyticsEventLevelUp
FIRAnalyticsEventLoginAnalyticsEventLogin
FIRAnalyticsEventPostScoreAnalyticsEventPostScore
FIRAnalyticsEventPresentOfferAnalyticsEventPresentOffer
FIRAnalyticsEventPurchaseRefundAnalyticsEventPurchaseRefund
FIRAnalyticsEventRemoveFromCartAnalyticsEventRemoveFromCart
FIRAnalyticsEventSearchAnalyticsEventSearch
FIRAnalyticsEventSelectContentAnalyticsEventSelectContent
FIRAnalyticsEventSetCheckoutOptionAnalyticsEventSetCheckoutOption
FIRAnalyticsEventShareAnalyticsEventShare
FIRAnalyticsEventSignUpAnalyticsEventSignUp
FIRAnalyticsEventSpendVirtualCurrencyAnalyticsEventSpendVirtualCurrency
FIRAnalyticsEventTutorialBeginAnalyticsEventTutorialBegin
FIRAnalyticsEventTutorialCompleteAnalyticsEventTutorialComplete
FIRAnalyticsEventUnlockAchievementAnalyticsEventUnlockAchievement
FIRAnalyticsEventViewItemAnalyticsEventViewItem
FIRAnalyticsEventViewItemListAnalyticsEventViewItemList
FIRAnalyticsEventViewSearchResultsAnalyticsEventViewSearchResults
FIRAnalyticsParameterAchievementIDAnalyticsParameterAchievementID
FIRAnalyticsParameterAdNetworkClickIDAnalyticsParameterAdNetworkClickID
FIRAnalyticsParameterAffiliationAnalyticsParameterAffiliation
FIRAnalyticsParameterCampaignAnalyticsParameterCampaign
FIRAnalyticsParameterCharacterAnalyticsParameterCharacter
FIRAnalyticsParameterCheckoutStepAnalyticsParameterCheckoutStep
FIRAnalyticsParameterCheckoutOptionAnalyticsParameterCheckoutOption
FIRAnalyticsParameterContentAnalyticsParameterContent
FIRAnalyticsParameterContentTypeAnalyticsParameterContentType
FIRAnalyticsParameterCouponAnalyticsParameterCoupon
FIRAnalyticsParameterCreativeNameAnalyticsParameterCreativeName
FIRAnalyticsParameterCreativeSlotAnalyticsParameterCreativeSlot
FIRAnalyticsParameterCurrencyAnalyticsParameterCurrency
FIRAnalyticsParameterDestinationAnalyticsParameterDestination
FIRAnalyticsParameterEndDateAnalyticsParameterEndDate
FIRAnalyticsParameterFlightNumberAnalyticsParameterFlightNumber
FIRAnalyticsParameterGroupIDAnalyticsParameterGroupID
FIRAnalyticsParameterIndexAnalyticsParameterIndex
FIRAnalyticsParameterItemBrandAnalyticsParameterItemBrand
FIRAnalyticsParameterItemCategoryAnalyticsParameterItemCategory
FIRAnalyticsParameterItemIDAnalyticsParameterItemID
FIRAnalyticsParameterItemLocationIDAnalyticsParameterItemLocationID
FIRAnalyticsParameterItemNameAnalyticsParameterItemName
FIRAnalyticsParameterItemListAnalyticsParameterItemList
FIRAnalyticsParameterItemVariantAnalyticsParameterItemVariant
FIRAnalyticsParameterLevelAnalyticsParameterLevel
FIRAnalyticsParameterLocationAnalyticsParameterLocation
FIRAnalyticsParameterMediumAnalyticsParameterMedium
FIRAnalyticsParameterNumberOfNightsAnalyticsParameterNumberOfNights
FIRAnalyticsParameterNumberOfPassengersAnalyticsParameterNumberOfPassengers
FIRAnalyticsParameterNumberOfRoomsAnalyticsParameterNumberOfRooms
FIRAnalyticsParameterOriginAnalyticsParameterOrigin
FIRAnalyticsParameterPriceAnalyticsParameterPrice
FIRAnalyticsParameterQuantityAnalyticsParameterQuantity
FIRAnalyticsParameterScoreAnalyticsParameterScore
FIRAnalyticsParameterSearchTermAnalyticsParameterSearchTerm
FIRAnalyticsParameterShippingAnalyticsParameterShipping
FIRAnalyticsParameterSignUpMethodAnalyticsParameterSignUpMethod
FIRAnalyticsParameterSourceAnalyticsParameterSource
FIRAnalyticsParameterStartDateAnalyticsParameterStartDate
FIRAnalyticsParameterTaxAnalyticsParameterTax
FIRAnalyticsParameterTermAnalyticsParameterTerm
FIRAnalyticsParameterTransactionIDAnalyticsParameterTransactionID
FIRAnalyticsParameterTravelClassAnalyticsParameterTravelClass
FIRAnalyticsParameterValueAnalyticsParameterValue
FIRAnalyticsParameterVirtualCurrencyNameAnalyticsParameterVirtualCurrencyName
FIRAnalyticsUserPropertySignUpMethodAnalyticsUserPropertySignUpMethod
之前
函数
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
}
FIRAdditionalUserInfoAdditionalUserInfo
FIRActionCodeInfoActionCodeInfo
FIRAuthAuth
FIRAuthCredentialAuthCredential
FIRAuthDataResultAuthDataResult
FIRAuthErrorsAuthErrors
FIRSecureTokenServiceSecureTokenService
FIRUserUser
FIRUserProfileChangeRequestUserProfileChangeRequest
FIRUserInfoUserInfo
FIREmailAuthProviderEmailAuthProvider
FIRFacebookAuthProviderFacebookAuthProvider
FIRGitHubAuthProviderGitHubAuthProvider
FIRGoogleAuthProviderGoogleAuthProvider
FIROAuthProviderOAuthProvider
FIRTwitterAuthProviderTwitterAuthProvider
常量
FIRAuthErrorDomainAuthErrorDomain
FIRAuthErrorNameKeyAuthErrorNameKey
FIREmailAuthProviderIDEmailAuthProviderID
FIRFacebookAuthProviderIDFacebookAuthProviderID
FIRGitHubAuthProviderIDGitHubAuthProviderID
FIRGoogleAuthProviderIDGoogleAuthProviderID
FIRTwitterAuthProviderIDTwitterAuthProviderID
FIRAuthStateDidChangeAuthStateDidChange
类型声明
FIRAuthStateDidChangeListenerHandleAuthStateDidChangeListenerHandle
FIRAuthStateDidChangeListenerBlockAuthStateDidChangeListenerBlock
FIRAuthDataResultCallbackAuthDataResultCallback
FIRAuthResultCallbackAuthResultCallback
FIRProviderQueryCallbackProviderQueryCallback
FIRSendPasswordResetCallbackSendPasswordResetCallback
FIRConfirmPasswordResetCallbackConfirmPasswordResetCallback
FIRVerifyPasswordResetCodeCallbackVerifyPasswordResetCodeCallback
FIRApplyActionCodeCallbackApplyActionCodeCallback
FIRVerificationResultCallbackVerificationResultCallback
枚举
FIRActionDataKeyActionDataKey
FIRActionCodeOperationActionCodeOperation
FIRAuthErrorCodeAuthErrorCode
之前
函数
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
GCMSenderIDgcmSenderID
FIRAnalyticsConfigurationAnalyticsConfiguration
FIRAppFirebaseApp
FIRConfigurationFirebaseConfiguration
FIROptionsFirebaseOptions
类型声明
FIRAppVoidBoolCallbackFirebaseAppVoidBoolCallback
枚举
FIRLoggerLevelFirebaseLoggerLevel
之前
函数
FIRCrashMessage(_:) FirebaseCrashMessage(_:)
之前
属性
FIRDatabase.h
persistenceEnabledisPersistenceEnabled
FIRDataSnapshotDataSnapshot
FIRDatabaseDatabase
FIRDatabaseQueryDatabaseQuery
FIRDatabaseReferenceDatabaseReference
FIRMutableDataMutableData
FIRServerValueServerValue
FIRTransactionResultTransactionResult
类型声明
FIRDatabaseHandleDatabaseHandle
枚举
FIRDataEventTypeDataEventType
之前
函数
// FIRDynamicLinks.h
dynamicLink(fromUniversalLinkURL:)dynamicLink(fromUniversalLink:)
FIRDynamicLinkDynamicLink
FIRDLRetrievalDelegateDLRetrievalDelegate
FIRDynamicLinksDynamicLinks
FIRDynamicLinkGoogleAnalyticsParametersDynamicLinkGoogleAnalyticsParameters
FIRDynamicLinkIOSParametersDynamicLinkIOSParameters
FIRDynamicLinkItunesConnectAnalyticsParametersDynamicLinkItunesConnectAnalyticsParameters
FIRDynamicLinkAndroidParametersDynamicLinkAndroidParameters
FIRDynamicLinkSocialMetaTagParametersDynamicLinkSocialMetaTagParameters
FIRDynamicLinkNavigationInfoParametersDynamicLinkNavigationInfoParameters
FIRDynamicLinkComponentsOptionsDynamicLinkComponentsOptions
FIRDynamicLinkComponentsDynamicLinkComponents
类型声明
FIRDynamicLinkResolverHandlerDynamicLinkResolverHandler
FIRDynamicLinkUniversalLinkHandlerDynamicLinkUniversalLinkHandler
FIRDynamicLinkShortenerCompletionDynamicLinkShortenerCompletion
枚举
FIRDynamicLinkMatchConfidenceDynamicLinkMatchConfidence
FIRDLRequiredMatchConfidenceDLRequiredMatchConfidence
FIRDLRetrieveResultDLRetrieveResult
FIRShortDynamicLinkPathLengthShortDynamicLinkPathLength
之前
函数
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
}
FIRInstanceIDInstanceID
常量
FIRInstanceIDScopeFirebaseMessagingInstanceIDScopeFirebaseMessaging
FIRInstanceIDTokenRefreshInstanceIDTokenRefresh
类型声明
FIRInstanceIDTokenHandlerInstanceIDTokenHandler
FIRInstanceIDDeleteTokenHandlerInstanceIDDeleteTokenHandler
FIRInstanceIDHandlerInstanceIDHandler
FIRInstanceIDDeleteHandlerInstanceIDDeleteHandler
枚举
FIRInstanceIDErrorInstanceIDError
FIRInstanceIDAPNSTokenTypeInstanceIDAPNSTokenType
之前
FIRInvitesInvites
FIRInvitesTargetApplicationInvitesTargetApplication
FIRReceivedInviteReceivedInvite
常量
FIRInvitesErrorDomainInvitesErrorDomain
枚举
FIRInvitesErrorCodeInvitesErrorCode
FIRReceivedInviteMatchTypeReceivedInviteMatchType
协议
FIRInviteBuilderInviteBuilder
FIRInviteDelegateInviteDelegate
之前
函数
FIRMessaging
connect(completion:)connect(handler:)
FIRMessagingMessageInfoMessagingMessageInfo
FIRMessagingRemoteMessageMessagingRemoteMessage
FIRMessagingMessaging
常量
FIRMessagingSendSuccessMessagingSendSuccess
FIRMessagingSendErrorMessagingSendError
FIRMessagingMessagesDeletedMessagingMessagesDeleted
FIRMessagingConnectionStateChangedMessagingConnectionStateChanged
FIRMessagingRegistrationTokenRefreshedMessagingRegistrationTokenRefreshed
类型声明
FIRMessagingFCMTokenFetchCompletionMessagingFCMTokenFetchCompletion
FIRMessagingDeleteFCMTokenCompletionMessagingDeleteFCMTokenCompletion
枚举
FIRMessagingErrorMessagingError
FIRMessagingMessageStatusMessagingMessageStatus
FIRMessagingAPNSTokenTypeMessagingAPNSTokenType
协议
FIRMessagingDelegateMessagingDelegate
之前
函数
FIRRemoteConfig
setDefaultsFromPlistFileName(_:)setDefaults(fromPlist:)
setDefaultsFromPlistFileName(_:namespace)setDefaults(fromPlist:namespace)
FIRRemoteConfigValueRemoteConfigValue
FIRRemoteConfigSettingsRemoteConfigSettings
FIRRemoteConfigRemoteConfig
常量
FIRNamespaceGoogleMobilePlatformNamespaceGoogleMobilePlatform
FIRRemoteConfigThrottledEndTimeInSecondsKeyRemoteConfigThrottledEndTimeInSecondsKey
FIRRemoteConfigErrorDomainRemoteConfigErrorDomain
类型声明
FIRRemoteConfigFetchCompletionRemoteConfigFetchCompletion
枚举
FIRRemoteConfigFetchStatusRemoteConfigFetchStatus
FIRRemoteConfigErrorRemoteConfigError
FIRRemoteConfigSourceRemoteConfigSource
之前
函数
FIRStorageReference
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:)
FIRStorageStorage
FIRStorageDownloadTaskStorageDownloadTask
FIRStorageMetadataStorageMetadata
FIRStorageObservableTaskStorageObservableTask
FIRStorageReferenceStorageReference
FIRStorageTaskStorageTask
FIRStorageTaskSnapshotStorageTaskSnapshot
FIRStorageUploadTaskStorageUploadTask
常量
FIRStorageErrorDomainStorageErrorDomain
枚举
FIRStorageTaskStatusStorageTaskStatus
FIRStorageErrorCodeStorageErrorCode
协议
FIRStorageTaskManagementStorageTaskManagement
类型声明
FIRStorageHandleStorageHandle
FIRStorageVoidDataErrorStorageVoidDataError
FIRStorageVoidErrorStorageVoidError
FIRStorageVoidMetadataStorageVoidMetadata
FIRStorageVoidMetadataErrorStorageVoidMetadataError
FIRStorageVoidSnapshotStorageVoidSnapshot
FIRStorageVoidURLErrorStorageVoidURLError