Skip to content

Upgrading firebase_analytics 7 to 8

Breaking7.1.1 β†’ 8.3.4Breaking1Platform1New1Changed4Fixed5Other13

BreakingUpgrade verdict

1 breaking change and a platform requirement change.

  • The package now uses Dart sound null safety, so code that passes or expects nullable values may need updating.
  • You now need Dart 2.12.0 or newer to use this package.
2 items need code or config changes

Dart SDK requirement changed in 8.0.0-dev.0: >=2.12.0-0 <3.0.0 β†’ >=2.12.0 <3.0.0.

Breaking1
Migrates firebase_analytics to sound null safety.
Platform1
Bumps the minimum Dart SDK constraint to 2.12.0.

Generated by DepDelta from published Dart source. Not mixed with prose notes.

  • changed: field FirebaseAnalytics.android: final FirebaseAnalyticsAndroid β†’ field FirebaseAnalytics.android: final FirebaseAnalyticsAndroid?
  • changed: function filterOutNulls(Map<String, dynamic> parameters): Map<String, dynamic> β†’ function filterOutNulls(Map<String, Object?> parameters): Map<String, Object>
  • changed: method FirebaseAnalytics.logAddToCart({ @required String itemId, @required String itemName, @required String itemCategory, @required int quantity, double price, double value, String currency, String origin, String itemLocationId, String destination, String startDate, String endDate, }): Future<void> β†’ method FirebaseAnalytics.logAddToCart({ required String itemId, required String itemName, required String itemCategory, required int quantity, double? price, double? value, String? currency, String? origin, String? itemLocationId, String? destination, String? startDate, String? endDate, }): Future<void>
  • changed: method FirebaseAnalytics.logAddToWishlist({ @required String itemId, @required String itemName, @required String itemCategory, @required int quantity, double price, double value, String currency, String itemLocationId, }): Future<void> β†’ method FirebaseAnalytics.logAddToWishlist({ required String itemId, required String itemName, required String itemCategory, required int quantity, double? price, double? value, String? currency, String? itemLocationId, }): Future<void>
  • changed: method FirebaseAnalytics.logBeginCheckout({ double value, String currency, String transactionId, int numberOfNights, int numberOfRooms, int numberOfPassengers, String origin, String destination, String startDate, String endDate, String travelClass, }): Future<void> β†’ method FirebaseAnalytics.logBeginCheckout({ double? value, String? currency, String? transactionId, int? numberOfNights, int? numberOfRooms, int? numberOfPassengers, String? origin, String? destination, String? startDate, String? endDate, String? travelClass, }): Future<void>
  • changed: method FirebaseAnalytics.logCampaignDetails({ @required String source, @required String medium, @required String campaign, String term, String content, String aclid, String cp1, }): Future<void> β†’ method FirebaseAnalytics.logCampaignDetails({ required String source, required String medium, required String campaign, String? term, String? content, String? aclid, String? cp1, }): Future<void>
  • changed: method FirebaseAnalytics.logEarnVirtualCurrency({ @required String virtualCurrencyName, @required num value, }): Future<void> β†’ method FirebaseAnalytics.logEarnVirtualCurrency({ required String virtualCurrencyName, required num value, }): Future<void>
  • changed: method FirebaseAnalytics.logEcommercePurchase({ String currency, double value, String transactionId, double tax, double shipping, String coupon, String location, int numberOfNights, int numberOfRooms, int numberOfPassengers, String origin, String destination, String startDate, String endDate, String travelClass, }): Future<void> β†’ method FirebaseAnalytics.logEcommercePurchase({ String? currency, double? value, String? transactionId, double? tax, double? shipping, String? coupon, String? location, int? numberOfNights, int? numberOfRooms, int? numberOfPassengers, String? origin, String? destination, String? startDate, String? endDate, String? travelClass, }): Future<void>
  • changed: method FirebaseAnalytics.logEvent( {@required String name, Map<String, dynamic> parameters}): Future<void> β†’ method FirebaseAnalytics.logEvent( {required String name, Map<String, Object?>? parameters}): Future<void>
  • changed: method FirebaseAnalytics.logGenerateLead({ String currency, double value, }): Future<void> β†’ method FirebaseAnalytics.logGenerateLead({ String? currency, double? value, }): Future<void>
  • changed: method FirebaseAnalytics.logJoinGroup({ @required String groupId, }): Future<void> β†’ method FirebaseAnalytics.logJoinGroup({ required String groupId, }): Future<void>
  • changed: method FirebaseAnalytics.logLevelEnd({ @required String levelName, int success, }): Future<void> β†’ method FirebaseAnalytics.logLevelEnd({ required String levelName, int? success, }): Future<void>
  • changed: method FirebaseAnalytics.logLevelStart({ @required String levelName, }): Future<void> β†’ method FirebaseAnalytics.logLevelStart({ required String levelName, }): Future<void>
  • changed: method FirebaseAnalytics.logLevelUp({ @required int level, String character, }): Future<void> β†’ method FirebaseAnalytics.logLevelUp({ required int level, String? character, }): Future<void>
  • changed: method FirebaseAnalytics.logLogin({String loginMethod}): Future<void> β†’ method FirebaseAnalytics.logLogin({String? loginMethod}): Future<void>
  • changed: method FirebaseAnalytics.logPostScore({ @required int score, int level, String character, }): Future<void> β†’ method FirebaseAnalytics.logPostScore({ required int score, int? level, String? character, }): Future<void>
  • changed: method FirebaseAnalytics.logPresentOffer({ @required String itemId, @required String itemName, @required String itemCategory, @required int quantity, double price, double value, String currency, String itemLocationId, }): Future<void> β†’ method FirebaseAnalytics.logPresentOffer({ required String itemId, required String itemName, required String itemCategory, required int quantity, double? price, double? value, String? currency, String? itemLocationId, }): Future<void>
  • changed: method FirebaseAnalytics.logPurchaseRefund({ String currency, double value, String transactionId, }): Future<void> β†’ method FirebaseAnalytics.logPurchaseRefund({ String? currency, double? value, String? transactionId, }): Future<void>
  • changed: method FirebaseAnalytics.logRemoveFromCart({ @required String itemId, @required String itemName, @required String itemCategory, @required int quantity, double price, double value, String currency, String origin, String itemLocationId, String destination, String startDate, String endDate, }): Future<void> β†’ method FirebaseAnalytics.logRemoveFromCart({ required String itemId, required String itemName, required String itemCategory, required int quantity, double? price, double? value, String? currency, String? origin, String? itemLocationId, String? destination, String? startDate, String? endDate, }): 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, }): Future<void> β†’ method FirebaseAnalytics.logSearch({ required String searchTerm, int? numberOfNights, int? numberOfRooms, int? numberOfPassengers, String? origin, String? destination, String? startDate, String? endDate, String? travelClass, }): Future<void>
  • changed: method FirebaseAnalytics.logSelectContent({ @required String contentType, @required String itemId, }): Future<void> β†’ method FirebaseAnalytics.logSelectContent({ required String contentType, required String itemId, }): Future<void>
  • changed: method FirebaseAnalytics.logSetCheckoutOption({ @required int checkoutStep, @required String checkoutOption, }): Future<void> β†’ method FirebaseAnalytics.logSetCheckoutOption({ required int checkoutStep, required String checkoutOption, }): 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, }): Future<void>
  • changed: method FirebaseAnalytics.logSignUp({ @required String signUpMethod, }): Future<void> β†’ method FirebaseAnalytics.logSignUp({ required String signUpMethod, }): 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, }): Future<void>
  • changed: method FirebaseAnalytics.logUnlockAchievement({ @required String id, }): Future<void> β†’ method FirebaseAnalytics.logUnlockAchievement({ required String id, }): Future<void>
  • changed: method FirebaseAnalytics.logViewItem({ @required String itemId, @required String itemName, @required String itemCategory, String itemLocationId, double price, int quantity, String currency, double value, String flightNumber, int numberOfPassengers, int numberOfNights, int numberOfRooms, String origin, String destination, String startDate, String endDate, String searchTerm, String travelClass, }):… β†’ method FirebaseAnalytics.logViewItem({ required String itemId, required String itemName, required String itemCategory, String? itemLocationId, double? price, int? quantity, String? currency, double? value, String? flightNumber, int? numberOfPassengers, int? numberOfNights, int? numberOfRooms, String? origin, String? destination, String? startDate, String? endDate, String? searchTerm, String? trav…
  • changed: method FirebaseAnalytics.logViewItemList({ @required String itemCategory, }): Future<void> β†’ method FirebaseAnalytics.logViewItemList({ required String itemCategory, }): Future<void>
  • changed: method FirebaseAnalytics.logViewSearchResults({ @required String searchTerm, }): Future<void> β†’ method FirebaseAnalytics.logViewSearchResults({ required String searchTerm, }): Future<void>
  • changed: method FirebaseAnalytics.setCurrentScreen( {@required String screenName, String screenClassOverride = …}): Future<void> β†’ method FirebaseAnalytics.setCurrentScreen( {required String? screenName, String screenClassOverride = …}): Future<void>
  • changed: method FirebaseAnalytics.setUserId(String id): Future<void> β†’ method FirebaseAnalytics.setUserId(String? id): Future<void>
  • changed: method FirebaseAnalytics.setUserProperty( {@required String name, @required String value}): Future<void> β†’ method FirebaseAnalytics.setUserProperty( {required String name, required String? value}): Future<void>
  • changed: ctor FirebaseAnalyticsObserver({ @required this.analytics, this.nameExtractor = …, Function(PlatformException error) onError, }) β†’ ctor FirebaseAnalyticsObserver({ required this.analytics, this.nameExtractor = …, Function(PlatformException error)? onError, })
  • changed: function defaultNameExtractor(RouteSettings settings): String β†’ function defaultNameExtractor(RouteSettings settings): String?
  • changed: method FirebaseAnalyticsObserver.didPop(Route<dynamic> route, Route<dynamic> previousRoute): void β†’ method FirebaseAnalyticsObserver.didPop(Route<dynamic> route, Route<dynamic>? previousRoute): void
  • changed: method FirebaseAnalyticsObserver.didPush(Route<dynamic> route, Route<dynamic> previousRoute): void β†’ method FirebaseAnalyticsObserver.didPush(Route<dynamic> route, Route<dynamic>? previousRoute): void
  • changed: method FirebaseAnalyticsObserver.didReplace({Route<dynamic> newRoute, Route<dynamic> oldRoute}): void β†’ method FirebaseAnalyticsObserver.didReplace({Route<dynamic>? newRoute, Route<dynamic>? oldRoute}): void
  • changed: typedef ScreenNameExtractor = String Function(RouteSettings settings) β†’ typedef ScreenNameExtractor = String? Function(RouteSettings settings)