Upgrading firebase_analytics 9 to 10
Breaking9.3.8 โ 10.10.7Breaking1Platform2New4Changed6Fixed3Other3
BreakingUpgrade verdict
1 breaking change and 2 platform requirement changes.
In plain terms
- On iOS, this version now uses Firebase's 10.0.0 SDK, which may require app changes before upgrading.
- Android builds now compile against Android SDK version 34 instead of an older one.
- The package now works with the newer Android build tooling, version 8.
Must act 3 items need code or config changes
Dart SDK requirement changed in 10.4.0: >=2.16.0 <3.0.0 โ >=2.18.0 <4.0.0.
Flutter requirement changed in 10.4.0: >=1.12.13+hotfix.5 โ >=3.3.0.
What you must change
Breaking1
Updates the Firebase iOS SDK to version 10.0.0, a breaking change.
Platform2
Bumps the Android plugins' compileSdk version to the latest stable, 34.
compileSdkAdds full support for Android Gradle Plugin (AGP) 8.
API changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- changed:
method FirebaseAnalytics.logAdImpression({ String? adPlatform, String? adSource, String? adFormat, String? adUnitName, double? value, String? currency, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logAdImpression({ String? adPlatform, String? adSource, String? adFormat, String? adUnitName, double? value, String? currency, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logAddPaymentInfo({ String? coupon, String? currency, String? paymentType, double? value, List<AnalyticsEventItem>? items, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logAddPaymentInfo({ String? coupon, String? currency, String? paymentType, double? value, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logAddShippingInfo({ String? coupon, String? currency, double? value, String? shippingTier, List<AnalyticsEventItem>? items, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logAddShippingInfo({ String? coupon, String? currency, double? value, String? shippingTier, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logAddToCart({ List<AnalyticsEventItem>? items, double? value, String? currency, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logAddToCart({ List<AnalyticsEventItem>? items, double? value, String? currency, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logAddToWishlist({ List<AnalyticsEventItem>? items, double? value, String? currency, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logAddToWishlist({ List<AnalyticsEventItem>? items, double? value, String? currency, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logAppOpen({AnalyticsCallOptions? callOptions}): Future<void> โ method FirebaseAnalytics.logAppOpen({ AnalyticsCallOptions? callOptions, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logBeginCheckout({ double? value, String? currency, List<AnalyticsEventItem>? items, String? coupon, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logBeginCheckout({ double? value, String? currency, List<AnalyticsEventItem>? items, String? coupon, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logCampaignDetails({ required String source, required String medium, required String campaign, String? term, String? content, String? aclid, String? cp1, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logCampaignDetails({ required String source, required String medium, required String campaign, String? term, String? content, String? aclid, String? cp1, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logEarnVirtualCurrency({ required String virtualCurrencyName, required num value, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logEarnVirtualCurrency({ required String virtualCurrencyName, required num value, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logGenerateLead({ String? currency, double? value, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logGenerateLead({ String? currency, double? value, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logJoinGroup({ required String groupId, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logJoinGroup({ required String groupId, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logLevelEnd({ required String levelName, int? success, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logLevelEnd({ required String levelName, int? success, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logLevelStart({ required String levelName, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logLevelStart({ required String levelName, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logLevelUp({ required int level, String? character, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logLevelUp({ required int level, String? character, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logLogin({ String? loginMethod, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logLogin({ String? loginMethod, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logPostScore({ required int score, int? level, String? character, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logPostScore({ required int score, int? level, String? character, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logPurchase({ String? currency, String? coupon, double? value, List<AnalyticsEventItem>? items, double? tax, double? shipping, String? transactionId, String? affiliation, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logPurchase({ String? currency, String? coupon, double? value, List<AnalyticsEventItem>? items, double? tax, double? shipping, String? transactionId, String? affiliation, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logRefund({ String? currency, String? coupon, double? value, double? tax, double? shipping, String? transactionId, String? affiliation, List<AnalyticsEventItem>? items, }): Future<void> โ method FirebaseAnalytics.logRefund({ String? currency, String? coupon, double? value, double? tax, double? shipping, String? transactionId, String? affiliation, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logRemoveFromCart({ String? currency, double? value, List<AnalyticsEventItem>? items, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logRemoveFromCart({ String? currency, double? value, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logScreenView({ String? screenClass, String? screenName, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logScreenView({ String? screenClass, String? screenName, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logSearch({ required String searchTerm, int? numberOfNights, int? numberOfRooms, int? numberOfPassengers, String? origin, String? destination, String? startDate, String? endDate, String? travelClass, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logSearch({ required String searchTerm, int? numberOfNights, int? numberOfRooms, int? numberOfPassengers, String? origin, String? destination, String? startDate, String? endDate, String? travelClass, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logSelectContent({ required String contentType, required String itemId, }): Future<void> โ method FirebaseAnalytics.logSelectContent({ required String contentType, required String itemId, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logSelectItem({ String? itemListId, String? itemListName, List<AnalyticsEventItem>? items, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logSelectItem({ String? itemListId, String? itemListName, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logSelectPromotion({ String? creativeName, String? creativeSlot, List<AnalyticsEventItem>? items, String? locationId, String? promotionId, String? promotionName, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logSelectPromotion({ String? creativeName, String? creativeSlot, List<AnalyticsEventItem>? items, String? locationId, String? promotionId, String? promotionName, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logSetCheckoutOption({ required int checkoutStep, required String checkoutOption, }): Future<void> โ method FirebaseAnalytics.logSetCheckoutOption({ required int checkoutStep, required String checkoutOption, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logShare({ required String contentType, required String itemId, required String method, }): Future<void> โ method FirebaseAnalytics.logShare({ required String contentType, required String itemId, required String method, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logSignUp({ required String signUpMethod, }): Future<void> โ method FirebaseAnalytics.logSignUp({ required String signUpMethod, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logSpendVirtualCurrency({ required String itemName, required String virtualCurrencyName, required num value, }): Future<void> โ method FirebaseAnalytics.logSpendVirtualCurrency({ required String itemName, required String virtualCurrencyName, required num value, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logTutorialBegin(): Future<void> โ method FirebaseAnalytics.logTutorialBegin({ Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logTutorialComplete(): Future<void> โ method FirebaseAnalytics.logTutorialComplete({ Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logUnlockAchievement({ required String id, }): Future<void> โ method FirebaseAnalytics.logUnlockAchievement({ required String id, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logViewCart({ String? currency, double? value, List<AnalyticsEventItem>? items, AnalyticsCallOptions? callOptions, }): Future<void> โ method FirebaseAnalytics.logViewCart({ String? currency, double? value, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, AnalyticsCallOptions? callOptions, }): Future<void> - changed:
method FirebaseAnalytics.logViewItem({ String? currency, double? value, List<AnalyticsEventItem>? items, }): Future<void> โ method FirebaseAnalytics.logViewItem({ String? currency, double? value, List<AnalyticsEventItem>? items, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logViewItemList({ List<AnalyticsEventItem>? items, String? itemListId, String? itemListName, }): Future<void> โ method FirebaseAnalytics.logViewItemList({ List<AnalyticsEventItem>? items, String? itemListId, String? itemListName, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logViewPromotion({ String? creativeName, String? creativeSlot, List<AnalyticsEventItem>? items, String? locationId, String? promotionId, String? promotionName, }): Future<void> โ method FirebaseAnalytics.logViewPromotion({ String? creativeName, String? creativeSlot, List<AnalyticsEventItem>? items, String? locationId, String? promotionId, String? promotionName, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.logViewSearchResults({ required String searchTerm, }): Future<void> โ method FirebaseAnalytics.logViewSearchResults({ required String searchTerm, Map<String, Object?>? parameters, }): Future<void> - changed:
method FirebaseAnalytics.setConsent({ bool? adStorageConsentGranted, bool? analyticsStorageConsentGranted, }): Future<void> โ method FirebaseAnalytics.setConsent({ bool? adStorageConsentGranted, bool? analyticsStorageConsentGranted, bool? adPersonalizationSignalsConsentGranted, bool? adUserDataConsentGranted, bool? functionalityStorageConsentGranted, bool? personalizationStorageConsentGranted, bool? securityStorageConsentGranted, }): Future<void> - added:
method FirebaseAnalytics.getSessionId(): Future<int?> - added:
method FirebaseAnalytics.initiateOnDeviceConversionMeasurementWithEmailAddress( String emailAddress, ): Future<void> - added:
method FirebaseAnalytics.initiateOnDeviceConversionMeasurementWithPhoneNumber( String phoneNumber, ): Future<void>