Skip to content

Upgrading cloud_firestore 3 to 4

Breaking3.5.1 → 4.17.5Breaking1Platform2Deprecated1New16Changed8Fixed51Other4

BreakingUpgrade verdict

1 breaking change and 2 platform requirement changes.

  • On iOS, this version now requires Firebase iOS SDK 10.0.0.
  • Android builds now target Android SDK 34 instead of an older version.
  • The package now works with the newer Android build tooling, version 8.
  • The databaseURL setting is being phased out; use databaseId instead.
4 items need code or config changes

Dart SDK requirement changed in 4.7.0: >=2.16.0 <3.0.0 → >=2.18.0 <4.0.0.

Flutter requirement changed in 4.7.0: >=1.12.13+hotfix.5 → >=3.3.0.

Breaking1
Updates to Firebase iOS SDK version 10.0.0.
Platform2
Bumps the compileSdk version of Android plugins to the latest stable, 34.
compileSdk
Adds full support for Android Gradle Plugin (AGP) 8.
Deprecated1
Deprecates databaseURL in favor of databaseId.
databaseURLdatabaseId

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

  • changed: method DocumentReference.snapshots({bool includeMetadataChanges = …}): Stream<DocumentSnapshot<T>> → method DocumentReference.snapshots({ bool includeMetadataChanges = …, ListenSource source = …, }): Stream<DocumentSnapshot<T>>
  • changed: method DocumentReference.update(Map<String, Object?> data): Future<void> → method DocumentReference.update(Map<Object, Object?> data): Future<void>
  • changed: method FirebaseFirestore.useFirestoreEmulator(String host, int port, {bool sslEnabled = …}): void → method FirebaseFirestore.useFirestoreEmulator( String host, int port, { bool sslEnabled = …, bool automaticHostMapping = …, }): void
  • changed: method Query.endAt(List<Object?> values): Query<T> → method Query.endAt(Iterable<Object?> values): Query<T>
  • changed: method Query.endBefore(List<Object?> values): Query<T> → method Query.endBefore(Iterable<Object?> values): Query<T>
  • changed: method Query.snapshots({bool includeMetadataChanges = …}): Stream<QuerySnapshot<T>> → method Query.snapshots({ bool includeMetadataChanges = …, ListenSource source = …, }): Stream<QuerySnapshot<T>>
  • changed: method Query.startAfter(List<Object?> values): Query<T> → method Query.startAfter(Iterable<Object?> values): Query<T>
  • changed: method Query.startAt(List<Object?> values): Query<T> → method Query.startAt(Iterable<Object?> values): Query<T>
  • changed: method Query.where( Object field, { Object? isEqualTo, Object? isNotEqualTo, Object? isLessThan, Object? isLessThanOrEqualTo, Object? isGreaterThan, Object? isGreaterThanOrEqualTo, Object? arrayContains, List<Object?>? arrayContainsAny, List<Object?>? whereIn, List<Object?>? whereNotIn, bool? isNull, }): Query<T> → method Query.where( Object field, { Object? isEqualTo, Object? isNotEqualTo, Object? isLessThan, Object? isLessThanOrEqualTo, Object? isGreaterThan, Object? isGreaterThanOrEqualTo, Object? arrayContains, Iterable<Object?>? arrayContainsAny, Iterable<Object?>? whereIn, Iterable<Object?>? whereNotIn, bool? isNull, }): Query<T>
  • changed: static method FirebaseFirestore.instanceFor({required FirebaseApp app}): FirebaseFirestore → static method FirebaseFirestore.instanceFor({ required FirebaseApp app, @Deprecated( '`databaseURL` has been deprecated. Please use `databaseId` instead.', ) String? databaseURL, String? databaseId, }): FirebaseFirestore
  • added: class AggregateQuery
  • added: class AggregateQuerySnapshot
  • added: class Filter extends FilterPlatformInterface
  • added: ctor Filter( Object field, { Object? isEqualTo, Object? isNotEqualTo, Object? isLessThan, Object? isLessThanOrEqualTo, Object? isGreaterThan, Object? isGreaterThanOrEqualTo, Object? arrayContains, Iterable<Object?>? arrayContainsAny, Iterable<Object?>? whereIn, Iterable<Object?>? whereNotIn, bool? isNull, })
  • added: field AggregateQuery.query: final Query
  • added: field AggregateQuerySnapshot.query: final Query
  • added: field FirebaseFirestore.databaseId: String
  • added: field FirebaseFirestore.databaseURL: String
  • added: function convertNum(num input): num
  • added: get AggregateQuerySnapshot.count: int?
  • added: method AggregateQuery.count(): AggregateQuery
  • added: method AggregateQuery.get({ AggregateSource source = …, }): Future<AggregateQuerySnapshot>
  • added: method AggregateQuerySnapshot.getAverage(String field): double?
  • added: method AggregateQuerySnapshot.getSum(String field): double?
  • added: method Filter.toJson(): Map<String, Object?>
  • added: method FirebaseFirestore.namedQueryWithConverterGet<T>( String name, { GetOptions options = …, required FromFirestore<T> fromFirestore, required ToFirestore<T> toFirestore, }): Future<QuerySnapshot<T>>
  • added: method FirebaseFirestore.setIndexConfiguration({ required List<Index> indexes, List<FieldOverrides>? fieldOverrides, }): Future<void>
  • added: method FirebaseFirestore.setIndexConfigurationFromJSON(String json): Future<void>
  • added: method Query.aggregate( AggregateField aggregateField1, [ AggregateField? aggregateField2, AggregateField? aggregateField3, AggregateField? aggregateField4, AggregateField? aggregateField5, AggregateField? aggregateField6, AggregateField? aggregateField7, AggregateField? aggregateField8, AggregateField? aggregateField9, AggregateField? aggregateField10, AggregateField? aggregateField11, Aggregate…
  • added: method Query.count(): AggregateQuery
  • added: static method Filter.and( Filter filter1, Filter filter2, [ Filter? filter3, Filter? filter4, Filter? filter5, Filter? filter6, Filter? filter7, Filter? filter8, Filter? filter9, Filter? filter10, Filter? filter11, Filter? filter12, Filter? filter13, Filter? filter14, Filter? filter15, Filter? filter16, Filter? filter17, Filter? filter18, Filter? filter19, Filter? filter20, Filter? filter21, Filt…
  • added: static method Filter.or( Filter filter1, Filter filter2, [ Filter? filter3, Filter? filter4, Filter? filter5, Filter? filter6, Filter? filter7, Filter? filter8, Filter? filter9, Filter? filter10, Filter? filter11, Filter? filter12, Filter? filter13, Filter? filter14, Filter? filter15, Filter? filter16, Filter? filter17, Filter? filter18, Filter? filter19, Filter? filter20, Filter? filter21, Filte…
  • added: static method FirebaseFirestore.setLoggingEnabled(bool enabled): Future<void>
  • added: variable kIsWasm: const