firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.41k stars 1.42k forks source link

A single Firestore listener blocks all the other Firestore fetches on Edge connection #12405

Open limonadev opened 4 months ago

limonadev commented 4 months ago

Description

Important: This bug happened with Firestore in Flutter, it was already reported in the Flutterfire repository, but as Flutterfire is only calling the native SDKs, that issue was closed.

I have a single listener that is listening to a collection, retrieving up to 1000 documents (using where and orderBy) alongside other really smaller listeners and fetches from Firestore. If we use the app with a good network everything works fine, but when the device is on an Edge connection, the big listener returns a cached result, but for 3-4 minutes all the others Firestore queries stop working (all the futures that are waiting for a Firestore fetch won't complete until those 3-4 minutes passed).

Reproducing the issue

  1. Set the connection to Edge connection in iOS.
  2. Create a Firestore listener that listen to 1000 documents.
  3. After the declaration of the listener, add another Firestore request (like a fetch)
  4. Run the app and see how none of the other Firestore requests finishes until a couple of minutes pass.
  5. If you remove the big listener and run the app again, all the requests will complete in just a couple seconds.

Firebase SDK Version

10.20

Xcode Version

15.2

Installation Method

CocoaPods

Firebase Product(s)

Firestore

Targeted Platforms

iOS

Relevant Log Output

No response

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
```json Replace this line with the contents of your Package.resolved. ```

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
```yml PODS: - abseil/algorithm (1.20220623.0): - abseil/algorithm/algorithm (= 1.20220623.0) - abseil/algorithm/container (= 1.20220623.0) - abseil/algorithm/algorithm (1.20220623.0): - abseil/base/config - abseil/algorithm/container (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/core_headers - abseil/meta/type_traits - abseil/base (1.20220623.0): - abseil/base/atomic_hook (= 1.20220623.0) - abseil/base/base (= 1.20220623.0) - abseil/base/base_internal (= 1.20220623.0) - abseil/base/config (= 1.20220623.0) - abseil/base/core_headers (= 1.20220623.0) - abseil/base/dynamic_annotations (= 1.20220623.0) - abseil/base/endian (= 1.20220623.0) - abseil/base/errno_saver (= 1.20220623.0) - abseil/base/fast_type_id (= 1.20220623.0) - abseil/base/log_severity (= 1.20220623.0) - abseil/base/malloc_internal (= 1.20220623.0) - abseil/base/prefetch (= 1.20220623.0) - abseil/base/pretty_function (= 1.20220623.0) - abseil/base/raw_logging_internal (= 1.20220623.0) - abseil/base/spinlock_wait (= 1.20220623.0) - abseil/base/strerror (= 1.20220623.0) - abseil/base/throw_delegate (= 1.20220623.0) - abseil/base/atomic_hook (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/base (1.20220623.0): - abseil/base/atomic_hook - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/log_severity - abseil/base/raw_logging_internal - abseil/base/spinlock_wait - abseil/meta/type_traits - abseil/base/base_internal (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/base/config (1.20220623.0) - abseil/base/core_headers (1.20220623.0): - abseil/base/config - abseil/base/dynamic_annotations (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/errno_saver (1.20220623.0): - abseil/base/config - abseil/base/fast_type_id (1.20220623.0): - abseil/base/config - abseil/base/log_severity (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/malloc_internal (1.20220623.0): - abseil/base/base - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/raw_logging_internal - abseil/base/prefetch (1.20220623.0): - abseil/base/config - abseil/base/pretty_function (1.20220623.0) - abseil/base/raw_logging_internal (1.20220623.0): - abseil/base/atomic_hook - abseil/base/config - abseil/base/core_headers - abseil/base/errno_saver - abseil/base/log_severity - abseil/base/spinlock_wait (1.20220623.0): - abseil/base/base_internal - abseil/base/core_headers - abseil/base/errno_saver - abseil/base/strerror (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/errno_saver - abseil/base/throw_delegate (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/cleanup/cleanup (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/cleanup/cleanup_internal - abseil/cleanup/cleanup_internal (1.20220623.0): - abseil/base/base_internal - abseil/base/core_headers - abseil/utility/utility - abseil/container/common (1.20220623.0): - abseil/meta/type_traits - abseil/types/optional - abseil/container/compressed_tuple (1.20220623.0): - abseil/utility/utility - abseil/container/container_memory (1.20220623.0): - abseil/base/config - abseil/memory/memory - abseil/meta/type_traits - abseil/utility/utility - abseil/container/fixed_array (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/throw_delegate - abseil/container/compressed_tuple - abseil/memory/memory - abseil/container/flat_hash_map (1.20220623.0): - abseil/algorithm/container - abseil/base/core_headers - abseil/container/container_memory - abseil/container/hash_function_defaults - abseil/container/raw_hash_map - abseil/memory/memory - abseil/container/flat_hash_set (1.20220623.0): - abseil/algorithm/container - abseil/base/core_headers - abseil/container/container_memory - abseil/container/hash_function_defaults - abseil/container/raw_hash_set - abseil/memory/memory - abseil/container/hash_function_defaults (1.20220623.0): - abseil/base/config - abseil/hash/hash - abseil/strings/cord - abseil/strings/strings - abseil/container/hash_policy_traits (1.20220623.0): - abseil/meta/type_traits - abseil/container/hashtable_debug_hooks (1.20220623.0): - abseil/base/config - abseil/container/hashtablez_sampler (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/debugging/stacktrace - abseil/memory/memory - abseil/profiling/exponential_biased - abseil/profiling/sample_recorder - abseil/synchronization/synchronization - abseil/utility/utility - abseil/container/inlined_vector (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/core_headers - abseil/base/throw_delegate - abseil/container/inlined_vector_internal - abseil/memory/memory - abseil/container/inlined_vector_internal (1.20220623.0): - abseil/base/core_headers - abseil/container/compressed_tuple - abseil/memory/memory - abseil/meta/type_traits - abseil/types/span - abseil/container/layout (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/strings/strings - abseil/types/span - abseil/utility/utility - abseil/container/raw_hash_map (1.20220623.0): - abseil/base/throw_delegate - abseil/container/container_memory - abseil/container/raw_hash_set - abseil/container/raw_hash_set (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/prefetch - abseil/container/common - abseil/container/compressed_tuple - abseil/container/container_memory - abseil/container/hash_policy_traits - abseil/container/hashtable_debug_hooks - abseil/container/hashtablez_sampler - abseil/memory/memory - abseil/meta/type_traits - abseil/numeric/bits - abseil/utility/utility - abseil/debugging/debugging_internal (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/errno_saver - abseil/base/raw_logging_internal - abseil/debugging/demangle_internal (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/debugging/stacktrace (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/debugging/debugging_internal - abseil/debugging/symbolize (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/malloc_internal - abseil/base/raw_logging_internal - abseil/debugging/debugging_internal - abseil/debugging/demangle_internal - abseil/strings/strings - abseil/functional/any_invocable (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/utility/utility - abseil/functional/bind_front (1.20220623.0): - abseil/base/base_internal - abseil/container/compressed_tuple - abseil/meta/type_traits - abseil/utility/utility - abseil/functional/function_ref (1.20220623.0): - abseil/base/base_internal - abseil/base/core_headers - abseil/meta/type_traits - abseil/hash/city (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/hash/hash (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/container/fixed_array - abseil/functional/function_ref - abseil/hash/city - abseil/hash/low_level_hash - abseil/meta/type_traits - abseil/numeric/int128 - abseil/strings/strings - abseil/types/optional - abseil/types/variant - abseil/utility/utility - abseil/hash/low_level_hash (1.20220623.0): - abseil/base/config - abseil/base/endian - abseil/numeric/bits - abseil/numeric/int128 - abseil/memory (1.20220623.0): - abseil/memory/memory (= 1.20220623.0) - abseil/memory/memory (1.20220623.0): - abseil/base/core_headers - abseil/meta/type_traits - abseil/meta (1.20220623.0): - abseil/meta/type_traits (= 1.20220623.0) - abseil/meta/type_traits (1.20220623.0): - abseil/base/config - abseil/numeric/bits (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/numeric/int128 (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/numeric/bits - abseil/numeric/representation (1.20220623.0): - abseil/base/config - abseil/profiling/exponential_biased (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/profiling/sample_recorder (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/synchronization/synchronization - abseil/time/time - abseil/random/distributions (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/numeric/bits - abseil/random/internal/distribution_caller - abseil/random/internal/fast_uniform_bits - abseil/random/internal/fastmath - abseil/random/internal/generate_real - abseil/random/internal/iostream_state_saver - abseil/random/internal/traits - abseil/random/internal/uniform_helper - abseil/random/internal/wide_multiply - abseil/strings/strings - abseil/random/internal/distribution_caller (1.20220623.0): - abseil/base/config - abseil/base/fast_type_id - abseil/utility/utility - abseil/random/internal/fast_uniform_bits (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/random/internal/traits - abseil/random/internal/fastmath (1.20220623.0): - abseil/numeric/bits - abseil/random/internal/generate_real (1.20220623.0): - abseil/meta/type_traits - abseil/numeric/bits - abseil/random/internal/fastmath - abseil/random/internal/traits - abseil/random/internal/iostream_state_saver (1.20220623.0): - abseil/meta/type_traits - abseil/numeric/int128 - abseil/random/internal/nonsecure_base (1.20220623.0): - abseil/base/core_headers - abseil/container/inlined_vector - abseil/meta/type_traits - abseil/random/internal/pool_urbg - abseil/random/internal/salted_seed_seq - abseil/random/internal/seed_material - abseil/types/span - abseil/random/internal/pcg_engine (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/numeric/bits - abseil/numeric/int128 - abseil/random/internal/fastmath - abseil/random/internal/iostream_state_saver - abseil/random/internal/platform (1.20220623.0): - abseil/base/config - abseil/random/internal/pool_urbg (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/random/internal/randen - abseil/random/internal/seed_material - abseil/random/internal/traits - abseil/random/seed_gen_exception - abseil/types/span - abseil/random/internal/randen (1.20220623.0): - abseil/base/raw_logging_internal - abseil/random/internal/platform - abseil/random/internal/randen_hwaes - abseil/random/internal/randen_slow - abseil/random/internal/randen_engine (1.20220623.0): - abseil/base/endian - abseil/meta/type_traits - abseil/random/internal/iostream_state_saver - abseil/random/internal/randen - abseil/random/internal/randen_hwaes (1.20220623.0): - abseil/base/config - abseil/random/internal/platform - abseil/random/internal/randen_hwaes_impl - abseil/random/internal/randen_hwaes_impl (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/numeric/int128 - abseil/random/internal/platform - abseil/random/internal/randen_slow (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/numeric/int128 - abseil/random/internal/platform - abseil/random/internal/salted_seed_seq (1.20220623.0): - abseil/container/inlined_vector - abseil/meta/type_traits - abseil/random/internal/seed_material - abseil/types/optional - abseil/types/span - abseil/random/internal/seed_material (1.20220623.0): - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/raw_logging_internal - abseil/random/internal/fast_uniform_bits - abseil/strings/strings - abseil/types/optional - abseil/types/span - abseil/random/internal/traits (1.20220623.0): - abseil/base/config - abseil/numeric/bits - abseil/numeric/int128 - abseil/random/internal/uniform_helper (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/numeric/int128 - abseil/random/internal/traits - abseil/random/internal/wide_multiply (1.20220623.0): - abseil/base/config - abseil/numeric/bits - abseil/numeric/int128 - abseil/random/internal/traits - abseil/random/random (1.20220623.0): - abseil/random/distributions - abseil/random/internal/nonsecure_base - abseil/random/internal/pcg_engine - abseil/random/internal/pool_urbg - abseil/random/internal/randen_engine - abseil/random/seed_sequences - abseil/random/seed_gen_exception (1.20220623.0): - abseil/base/config - abseil/random/seed_sequences (1.20220623.0): - abseil/base/config - abseil/random/internal/pool_urbg - abseil/random/internal/salted_seed_seq - abseil/random/internal/seed_material - abseil/random/seed_gen_exception - abseil/types/span - abseil/status/status (1.20220623.0): - abseil/base/atomic_hook - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/base/strerror - abseil/container/inlined_vector - abseil/debugging/stacktrace - abseil/debugging/symbolize - abseil/functional/function_ref - abseil/strings/cord - abseil/strings/str_format - abseil/strings/strings - abseil/types/optional - abseil/status/statusor (1.20220623.0): - abseil/base/base - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/meta/type_traits - abseil/status/status - abseil/strings/strings - abseil/types/variant - abseil/utility/utility - abseil/strings/cord (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/container/fixed_array - abseil/container/inlined_vector - abseil/functional/function_ref - abseil/meta/type_traits - abseil/numeric/bits - abseil/strings/cord_internal - abseil/strings/cordz_functions - abseil/strings/cordz_info - abseil/strings/cordz_statistics - abseil/strings/cordz_update_scope - abseil/strings/cordz_update_tracker - abseil/strings/internal - abseil/strings/str_format - abseil/strings/strings - abseil/types/optional - abseil/types/span - abseil/strings/cord_internal (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/base/throw_delegate - abseil/container/compressed_tuple - abseil/container/inlined_vector - abseil/container/layout - abseil/functional/function_ref - abseil/meta/type_traits - abseil/strings/strings - abseil/types/span - abseil/strings/cordz_functions (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/profiling/exponential_biased - abseil/strings/cordz_handle (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/raw_logging_internal - abseil/synchronization/synchronization - abseil/strings/cordz_info (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/container/inlined_vector - abseil/debugging/stacktrace - abseil/strings/cord_internal - abseil/strings/cordz_functions - abseil/strings/cordz_handle - abseil/strings/cordz_statistics - abseil/strings/cordz_update_tracker - abseil/synchronization/synchronization - abseil/types/span - abseil/strings/cordz_statistics (1.20220623.0): - abseil/base/config - abseil/strings/cordz_update_tracker - abseil/strings/cordz_update_scope (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/strings/cord_internal - abseil/strings/cordz_info - abseil/strings/cordz_update_tracker - abseil/strings/cordz_update_tracker (1.20220623.0): - abseil/base/config - abseil/strings/internal (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/meta/type_traits - abseil/strings/str_format (1.20220623.0): - abseil/strings/str_format_internal - abseil/strings/str_format_internal (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/functional/function_ref - abseil/meta/type_traits - abseil/numeric/bits - abseil/numeric/int128 - abseil/numeric/representation - abseil/strings/strings - abseil/types/optional - abseil/types/span - abseil/utility/utility - abseil/strings/strings (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/base/throw_delegate - abseil/memory/memory - abseil/meta/type_traits - abseil/numeric/bits - abseil/numeric/int128 - abseil/strings/internal - abseil/synchronization/graphcycles_internal (1.20220623.0): - abseil/base/base - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/malloc_internal - abseil/base/raw_logging_internal - abseil/synchronization/kernel_timeout_internal (1.20220623.0): - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/time/time - abseil/synchronization/synchronization (1.20220623.0): - abseil/base/atomic_hook - abseil/base/base - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/malloc_internal - abseil/base/raw_logging_internal - abseil/debugging/stacktrace - abseil/debugging/symbolize - abseil/synchronization/graphcycles_internal - abseil/synchronization/kernel_timeout_internal - abseil/time/time - abseil/time (1.20220623.0): - abseil/time/internal (= 1.20220623.0) - abseil/time/time (= 1.20220623.0) - abseil/time/internal (1.20220623.0): - abseil/time/internal/cctz (= 1.20220623.0) - abseil/time/internal/cctz (1.20220623.0): - abseil/time/internal/cctz/civil_time (= 1.20220623.0) - abseil/time/internal/cctz/time_zone (= 1.20220623.0) - abseil/time/internal/cctz/civil_time (1.20220623.0): - abseil/base/config - abseil/time/internal/cctz/time_zone (1.20220623.0): - abseil/base/config - abseil/time/internal/cctz/civil_time - abseil/time/time (1.20220623.0): - abseil/base/base - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/numeric/int128 - abseil/strings/strings - abseil/time/internal/cctz/civil_time - abseil/time/internal/cctz/time_zone - abseil/types (1.20220623.0): - abseil/types/any (= 1.20220623.0) - abseil/types/bad_any_cast (= 1.20220623.0) - abseil/types/bad_any_cast_impl (= 1.20220623.0) - abseil/types/bad_optional_access (= 1.20220623.0) - abseil/types/bad_variant_access (= 1.20220623.0) - abseil/types/compare (= 1.20220623.0) - abseil/types/optional (= 1.20220623.0) - abseil/types/span (= 1.20220623.0) - abseil/types/variant (= 1.20220623.0) - abseil/types/any (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/fast_type_id - abseil/meta/type_traits - abseil/types/bad_any_cast - abseil/utility/utility - abseil/types/bad_any_cast (1.20220623.0): - abseil/base/config - abseil/types/bad_any_cast_impl - abseil/types/bad_any_cast_impl (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/types/bad_optional_access (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/types/bad_variant_access (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/types/compare (1.20220623.0): - abseil/base/core_headers - abseil/meta/type_traits - abseil/types/optional (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/memory/memory - abseil/meta/type_traits - abseil/types/bad_optional_access - abseil/utility/utility - abseil/types/span (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/core_headers - abseil/base/throw_delegate - abseil/meta/type_traits - abseil/types/variant (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/types/bad_variant_access - abseil/utility/utility - abseil/utility/utility (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/meta/type_traits - app_settings (5.1.1): - Flutter - AppAuth (1.6.2): - AppAuth/Core (= 1.6.2) - AppAuth/ExternalUserAgent (= 1.6.2) - AppAuth/Core (1.6.2) - AppAuth/ExternalUserAgent (1.6.2): - AppAuth/Core - BoringSSL-GRPC (0.0.24): - BoringSSL-GRPC/Implementation (= 0.0.24) - BoringSSL-GRPC/Interface (= 0.0.24) - BoringSSL-GRPC/Implementation (0.0.24): - BoringSSL-GRPC/Interface (= 0.0.24) - BoringSSL-GRPC/Interface (0.0.24) - braze_plugin (5.0.0): - BrazeKit (~> 6.0.0) - BrazeLocation (~> 6.0.0) - BrazeUI (~> 6.0.0) - Flutter - BrazeKit (6.0.0) - BrazeLocation (6.0.0): - BrazeKit (= 6.0.0) - BrazeUI (6.0.0): - BrazeKit (= 6.0.0) - camera_avfoundation (0.0.1): - Flutter - cloud_firestore (4.15.4): - Firebase/Firestore (= 10.20.0) - firebase_core - Flutter - nanopb (< 2.30910.0, >= 2.30908.0) - cloud_functions (4.6.5): - Firebase/Functions (= 10.20.0) - firebase_core - Flutter - contacts_service (0.2.2): - Flutter - datadog_flutter_plugin (0.0.1): - DatadogCore (= 2.6.0) - DatadogCrashReporting (= 2.6.0) - DatadogInternal (= 2.6.0) - DatadogLogs (= 2.6.0) - DatadogRUM (= 2.6.0) - DictionaryCoder (= 1.0.8) - Flutter - DatadogCore (2.6.0): - DatadogInternal (= 2.6.0) - DatadogCrashReporting (2.6.0): - DatadogInternal (= 2.6.0) - PLCrashReporter (~> 1.11.1) - DatadogInternal (2.6.0) - DatadogLogs (2.6.0): - DatadogInternal (= 2.6.0) - DatadogRUM (2.6.0): - DatadogInternal (= 2.6.0) - device_info (0.0.1): - Flutter - DictionaryCoder (1.0.8) - Firebase/Analytics (10.20.0): - Firebase/Core - Firebase/Auth (10.20.0): - Firebase/CoreOnly - FirebaseAuth (~> 10.20.0) - Firebase/Core (10.20.0): - Firebase/CoreOnly - FirebaseAnalytics (~> 10.20.0) - Firebase/CoreOnly (10.20.0): - FirebaseCore (= 10.20.0) - Firebase/Crashlytics (10.20.0): - Firebase/CoreOnly - FirebaseCrashlytics (~> 10.20.0) - Firebase/DynamicLinks (10.20.0): - Firebase/CoreOnly - FirebaseDynamicLinks (~> 10.20.0) - Firebase/Firestore (10.20.0): - Firebase/CoreOnly - FirebaseFirestore (~> 10.20.0) - Firebase/Functions (10.20.0): - Firebase/CoreOnly - FirebaseFunctions (~> 10.20.0) - Firebase/InAppMessaging (10.20.0): - Firebase/CoreOnly - FirebaseInAppMessaging (~> 10.20.0-beta) - Firebase/Messaging (10.20.0): - Firebase/CoreOnly - FirebaseMessaging (~> 10.20.0) - Firebase/Performance (10.20.0): - Firebase/CoreOnly - FirebasePerformance (~> 10.20.0) - Firebase/Storage (10.20.0): - Firebase/CoreOnly - FirebaseStorage (~> 10.20.0) - firebase_analytics (10.8.5): - Firebase/Analytics (= 10.20.0) - firebase_core - Flutter - firebase_auth (4.17.4): - Firebase/Auth (= 10.20.0) - firebase_core - Flutter - firebase_core (2.25.4): - Firebase/CoreOnly (= 10.20.0) - Flutter - firebase_crashlytics (3.4.14): - Firebase/Crashlytics (= 10.20.0) - firebase_core - Flutter - firebase_dynamic_links (5.4.13): - Firebase/DynamicLinks (= 10.20.0) - firebase_core - Flutter - firebase_in_app_messaging (0.7.4-13): - Firebase/InAppMessaging (= 10.20.0) - firebase_core - Flutter - firebase_messaging (14.7.15): - Firebase/Messaging (= 10.20.0) - firebase_core - Flutter - firebase_performance (0.9.3-13): - Firebase/Performance (= 10.20.0) - firebase_core - Flutter - firebase_storage (11.6.5): - Firebase/Storage (= 10.20.0) - firebase_core - Flutter - FirebaseABTesting (10.20.0): - FirebaseCore (~> 10.0) - FirebaseAnalytics (10.20.0): - FirebaseAnalytics/AdIdSupport (= 10.20.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseAnalytics/AdIdSupport (10.20.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleAppMeasurement (= 10.20.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseAppCheckInterop (10.20.0) - FirebaseAuth (10.20.0): - FirebaseAppCheckInterop (~> 10.17) - FirebaseCore (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - RecaptchaInterop (~> 100.0) - FirebaseAuthInterop (10.20.0) - FirebaseCore (10.20.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GoogleUtilities/Logger (~> 7.12) - FirebaseCoreExtension (10.20.0): - FirebaseCore (~> 10.0) - FirebaseCoreInternal (10.20.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseCrashlytics (10.20.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) - FirebaseSessions (~> 10.5) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.8) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (~> 2.1) - FirebaseDynamicLinks (10.20.0): - FirebaseCore (~> 10.0) - FirebaseFirestore (10.20.0): - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - FirebaseFirestoreInternal (~> 10.17) - FirebaseSharedSwift (~> 10.0) - FirebaseFirestoreInternal (10.20.0): - abseil/algorithm (~> 1.20220623.0) - abseil/base (~> 1.20220623.0) - abseil/container/flat_hash_map (~> 1.20220623.0) - abseil/memory (~> 1.20220623.0) - abseil/meta (~> 1.20220623.0) - abseil/strings/strings (~> 1.20220623.0) - abseil/time (~> 1.20220623.0) - abseil/types (~> 1.20220623.0) - FirebaseAppCheckInterop (~> 10.17) - FirebaseCore (~> 10.0) - "gRPC-C++ (~> 1.49.1)" - leveldb-library (~> 1.22) - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseFunctions (10.20.0): - FirebaseAppCheckInterop (~> 10.10) - FirebaseAuthInterop (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - FirebaseMessagingInterop (~> 10.0) - FirebaseSharedSwift (~> 10.0) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - FirebaseInAppMessaging (10.20.0-beta): - FirebaseABTesting (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseInstallations (10.20.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - FirebaseMessaging (10.20.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.3) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Reachability (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseMessagingInterop (10.20.0) - FirebasePerformance (10.20.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) - FirebaseRemoteConfig (~> 10.0) - FirebaseSessions (~> 10.5) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/ISASwizzler (~> 7.8) - GoogleUtilities/MethodSwizzler (~> 7.8) - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseRemoteConfig (10.20.0): - FirebaseABTesting (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - FirebaseSharedSwift (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseSessions (10.20.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.10) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesSwift (~> 2.1) - FirebaseSharedSwift (10.20.0) - FirebaseStorage (10.20.0): - FirebaseAppCheckInterop (~> 10.0) - FirebaseAuthInterop (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - Flutter (1.0.0) - flutter_file_dialog (0.0.1): - Flutter - flutter_smartlook (4.1.17): - Flutter - flutter_vibrate (0.0.1): - Flutter - fluttertoast (0.0.2): - Flutter - Toast - google_sign_in_ios (0.0.1): - Flutter - FlutterMacOS - GoogleSignIn (~> 7.0) - GoogleAppMeasurement (10.20.0): - GoogleAppMeasurement/AdIdSupport (= 10.20.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - GoogleAppMeasurement/AdIdSupport (10.20.0): - GoogleAppMeasurement/WithoutAdIdSupport (= 10.20.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - GoogleAppMeasurement/WithoutAdIdSupport (10.20.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - GoogleDataTransport (9.3.0): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - GoogleSignIn (7.0.0): - AppAuth (~> 1.5) - GTMAppAuth (< 3.0, >= 1.3) - GTMSessionFetcher/Core (< 4.0, >= 1.1) - GoogleUtilities/AppDelegateSwizzler (7.12.0): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Environment (7.12.0): - PromisesObjC (< 3.0, >= 1.2) - GoogleUtilities/ISASwizzler (7.12.0) - GoogleUtilities/Logger (7.12.0): - GoogleUtilities/Environment - GoogleUtilities/MethodSwizzler (7.12.0): - GoogleUtilities/Logger - GoogleUtilities/Network (7.12.0): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - "GoogleUtilities/NSData+zlib (7.12.0)" - GoogleUtilities/Reachability (7.12.0): - GoogleUtilities/Logger - GoogleUtilities/UserDefaults (7.12.0): - GoogleUtilities/Logger - "gRPC-C++ (1.49.1)": - "gRPC-C++/Implementation (= 1.49.1)" - "gRPC-C++/Interface (= 1.49.1)" - "gRPC-C++/Implementation (1.49.1)": - abseil/base/base (= 1.20220623.0) - abseil/base/core_headers (= 1.20220623.0) - abseil/cleanup/cleanup (= 1.20220623.0) - abseil/container/flat_hash_map (= 1.20220623.0) - abseil/container/flat_hash_set (= 1.20220623.0) - abseil/container/inlined_vector (= 1.20220623.0) - abseil/functional/any_invocable (= 1.20220623.0) - abseil/functional/bind_front (= 1.20220623.0) - abseil/functional/function_ref (= 1.20220623.0) - abseil/hash/hash (= 1.20220623.0) - abseil/memory/memory (= 1.20220623.0) - abseil/meta/type_traits (= 1.20220623.0) - abseil/random/random (= 1.20220623.0) - abseil/status/status (= 1.20220623.0) - abseil/status/statusor (= 1.20220623.0) - abseil/strings/cord (= 1.20220623.0) - abseil/strings/str_format (= 1.20220623.0) - abseil/strings/strings (= 1.20220623.0) - abseil/synchronization/synchronization (= 1.20220623.0) - abseil/time/time (= 1.20220623.0) - abseil/types/optional (= 1.20220623.0) - abseil/types/span (= 1.20220623.0) - abseil/types/variant (= 1.20220623.0) - abseil/utility/utility (= 1.20220623.0) - "gRPC-C++/Interface (= 1.49.1)" - gRPC-Core (= 1.49.1) - "gRPC-C++/Interface (1.49.1)" - gRPC-Core (1.49.1): - gRPC-Core/Implementation (= 1.49.1) - gRPC-Core/Interface (= 1.49.1) - gRPC-Core/Implementation (1.49.1): - abseil/base/base (= 1.20220623.0) - abseil/base/core_headers (= 1.20220623.0) - abseil/container/flat_hash_map (= 1.20220623.0) - abseil/container/flat_hash_set (= 1.20220623.0) - abseil/container/inlined_vector (= 1.20220623.0) - abseil/functional/any_invocable (= 1.20220623.0) - abseil/functional/bind_front (= 1.20220623.0) - abseil/functional/function_ref (= 1.20220623.0) - abseil/hash/hash (= 1.20220623.0) - abseil/memory/memory (= 1.20220623.0) - abseil/meta/type_traits (= 1.20220623.0) - abseil/random/random (= 1.20220623.0) - abseil/status/status (= 1.20220623.0) - abseil/status/statusor (= 1.20220623.0) - abseil/strings/cord (= 1.20220623.0) - abseil/strings/str_format (= 1.20220623.0) - abseil/strings/strings (= 1.20220623.0) - abseil/synchronization/synchronization (= 1.20220623.0) - abseil/time/time (= 1.20220623.0) - abseil/types/optional (= 1.20220623.0) - abseil/types/span (= 1.20220623.0) - abseil/types/variant (= 1.20220623.0) - abseil/utility/utility (= 1.20220623.0) - BoringSSL-GRPC (= 0.0.24) - gRPC-Core/Interface (= 1.49.1) - gRPC-Core/Interface (1.49.1) - GTMAppAuth (2.0.0): - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 4.0, >= 1.5) - GTMSessionFetcher/Core (3.3.1) - image_gallery_saver (2.0.2): - Flutter - image_picker_ios (0.0.1): - Flutter - in_app_review (0.2.0): - Flutter - leveldb-library (1.22.2) - location (0.0.1): - Flutter - nanopb (2.30909.1): - nanopb/decode (= 2.30909.1) - nanopb/encode (= 2.30909.1) - nanopb/decode (2.30909.1) - nanopb/encode (2.30909.1) - notification_permissions (0.4.4): - Flutter - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - "permission_handler (5.1.0+2)": - Flutter - PLCrashReporter (1.11.1) - PromisesObjC (2.3.1) - PromisesSwift (2.3.1): - PromisesObjC (= 2.3.1) - RecaptchaInterop (100.0.0) - share_plus (0.0.1): - Flutter - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - sign_in_with_apple (0.0.1): - Flutter - sqflite (0.0.3): - Flutter - FlutterMacOS - store_redirect (0.0.1): - Flutter - Stripe (19.4.1) - stripe_payment (1.0.0): - Flutter - Stripe (~> 19.4.0) - Toast (4.1.0) - url_launcher_ios (0.0.1): - Flutter - wakelock (0.0.1): - Flutter DEPENDENCIES: - app_settings (from `.symlinks/plugins/app_settings/ios`) - braze_plugin (from `.symlinks/plugins/braze_plugin/ios`) - camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`) - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) - cloud_functions (from `.symlinks/plugins/cloud_functions/ios`) - contacts_service (from `.symlinks/plugins/contacts_service/ios`) - datadog_flutter_plugin (from `.symlinks/plugins/datadog_flutter_plugin/ios`) - device_info (from `.symlinks/plugins/device_info/ios`) - firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_crashlytics (from `.symlinks/plugins/firebase_crashlytics/ios`) - firebase_dynamic_links (from `.symlinks/plugins/firebase_dynamic_links/ios`) - firebase_in_app_messaging (from `.symlinks/plugins/firebase_in_app_messaging/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_performance (from `.symlinks/plugins/firebase_performance/ios`) - firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) - Flutter (from `Flutter`) - flutter_file_dialog (from `.symlinks/plugins/flutter_file_dialog/ios`) - flutter_smartlook (from `.symlinks/plugins/flutter_smartlook/ios`) - flutter_vibrate (from `.symlinks/plugins/flutter_vibrate/ios`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`) - image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - in_app_review (from `.symlinks/plugins/in_app_review/ios`) - location (from `.symlinks/plugins/location/ios`) - notification_permissions (from `.symlinks/plugins/notification_permissions/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`) - sqflite (from `.symlinks/plugins/sqflite/darwin`) - store_redirect (from `.symlinks/plugins/store_redirect/ios`) - stripe_payment (from `.symlinks/plugins/stripe_payment/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - wakelock (from `.symlinks/plugins/wakelock/ios`) SPEC REPOS: trunk: - abseil - AppAuth - BoringSSL-GRPC - BrazeKit - BrazeLocation - BrazeUI - DatadogCore - DatadogCrashReporting - DatadogInternal - DatadogLogs - DatadogRUM - DictionaryCoder - Firebase - FirebaseABTesting - FirebaseAnalytics - FirebaseAppCheckInterop - FirebaseAuth - FirebaseAuthInterop - FirebaseCore - FirebaseCoreExtension - FirebaseCoreInternal - FirebaseCrashlytics - FirebaseDynamicLinks - FirebaseFirestore - FirebaseFirestoreInternal - FirebaseFunctions - FirebaseInAppMessaging - FirebaseInstallations - FirebaseMessaging - FirebaseMessagingInterop - FirebasePerformance - FirebaseRemoteConfig - FirebaseSessions - FirebaseSharedSwift - FirebaseStorage - GoogleAppMeasurement - GoogleDataTransport - GoogleSignIn - GoogleUtilities - "gRPC-C++" - gRPC-Core - GTMAppAuth - GTMSessionFetcher - leveldb-library - nanopb - PLCrashReporter - PromisesObjC - PromisesSwift - RecaptchaInterop - Stripe - Toast EXTERNAL SOURCES: app_settings: :path: ".symlinks/plugins/app_settings/ios" braze_plugin: :path: ".symlinks/plugins/braze_plugin/ios" camera_avfoundation: :path: ".symlinks/plugins/camera_avfoundation/ios" cloud_firestore: :path: ".symlinks/plugins/cloud_firestore/ios" cloud_functions: :path: ".symlinks/plugins/cloud_functions/ios" contacts_service: :path: ".symlinks/plugins/contacts_service/ios" datadog_flutter_plugin: :path: ".symlinks/plugins/datadog_flutter_plugin/ios" device_info: :path: ".symlinks/plugins/device_info/ios" firebase_analytics: :path: ".symlinks/plugins/firebase_analytics/ios" firebase_auth: :path: ".symlinks/plugins/firebase_auth/ios" firebase_core: :path: ".symlinks/plugins/firebase_core/ios" firebase_crashlytics: :path: ".symlinks/plugins/firebase_crashlytics/ios" firebase_dynamic_links: :path: ".symlinks/plugins/firebase_dynamic_links/ios" firebase_in_app_messaging: :path: ".symlinks/plugins/firebase_in_app_messaging/ios" firebase_messaging: :path: ".symlinks/plugins/firebase_messaging/ios" firebase_performance: :path: ".symlinks/plugins/firebase_performance/ios" firebase_storage: :path: ".symlinks/plugins/firebase_storage/ios" Flutter: :path: Flutter flutter_file_dialog: :path: ".symlinks/plugins/flutter_file_dialog/ios" flutter_smartlook: :path: ".symlinks/plugins/flutter_smartlook/ios" flutter_vibrate: :path: ".symlinks/plugins/flutter_vibrate/ios" fluttertoast: :path: ".symlinks/plugins/fluttertoast/ios" google_sign_in_ios: :path: ".symlinks/plugins/google_sign_in_ios/darwin" image_gallery_saver: :path: ".symlinks/plugins/image_gallery_saver/ios" image_picker_ios: :path: ".symlinks/plugins/image_picker_ios/ios" in_app_review: :path: ".symlinks/plugins/in_app_review/ios" location: :path: ".symlinks/plugins/location/ios" notification_permissions: :path: ".symlinks/plugins/notification_permissions/ios" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler: :path: ".symlinks/plugins/permission_handler/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" sign_in_with_apple: :path: ".symlinks/plugins/sign_in_with_apple/ios" sqflite: :path: ".symlinks/plugins/sqflite/darwin" store_redirect: :path: ".symlinks/plugins/store_redirect/ios" stripe_payment: :path: ".symlinks/plugins/stripe_payment/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" wakelock: :path: ".symlinks/plugins/wakelock/ios" SPEC CHECKSUMS: abseil: 926fb7a82dc6d2b8e1f2ed7f3a718bce691d1e46 app_settings: 017320c6a680cdc94c799949d95b84cb69389ebc AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33 braze_plugin: 3c5a47b75609bd433fc2c0ba9963747e0675f8b7 BrazeKit: 961eab8c8f9bf4b5589371d2aee1bfb8ed217861 BrazeLocation: 723978ea9ce7450ce5b2c5c6a5d254a57a2de275 BrazeUI: 502e054efaf6ac7a49056fb989952d2163750ef5 camera_avfoundation: 8b8d780bcfb6a4a02b0fbe2b4bd17b5b71946e68 cloud_firestore: ba576bee785a05ff952e4da7fa4e23c196917436 cloud_functions: 5974cfe154f4e8a0459c2aa03cd69c7055b6777f contacts_service: 849e1f84281804c8bfbec1b4c3eedcb23c5d3eca datadog_flutter_plugin: 183bf9d36cca06c7aaafb3bf79712082a209b02d DatadogCore: 2b9cae7b3706ec29c6329f5b2e350bd70395bfb6 DatadogCrashReporting: 0ebc16ea7f226805c19a7efa6dab47f3743c6d2c DatadogInternal: 6febbce547fac204638f2ef5fe53cea49d05215b DatadogLogs: 23905c3f91c8c3c9ab3bd0f00ec5c070fccafa36 DatadogRUM: 691819a9d5fc1924f783af6ad6eb609e5ab35e72 device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 DictionaryCoder: 5f84fff69f54cb806071538430bdafe04a89d658 Firebase: 10c8cb12fb7ad2ae0c09ffc86cd9c1ab392a0031 firebase_analytics: 2e82fd84ce13f8321aa7b99336d6ee0e6cc7b984 firebase_auth: 29a10d4129d53aa690c10dbd838ed1a059ef0c9b firebase_core: a46c312d8bae4defa3d009b2aa7b5b413aeb394e firebase_crashlytics: 3d12285fcbd865d576b9965bd4090cd8b68e11fd firebase_dynamic_links: 58354c4228a25d8c77185baafafaffa2debcc076 firebase_in_app_messaging: 82bb70f773d547f6d81965a9f33acac9fdd4e999 firebase_messaging: 40d7dd2f3e88a6367c7326cf601f84633d477582 firebase_performance: f090bad21e0318995827cbab40992952a8850fcb firebase_storage: 5007be227e54a46f260b6040a23b4fdc8ca1c5c5 FirebaseABTesting: 1d5d49804bcfc5fa782bc2491a8c1364e2cf7241 FirebaseAnalytics: a2731bf3670747ce8f65368b118d18aa8e368246 FirebaseAppCheckInterop: e81bdb1cdb82f8e0cef353ba5018a8402682032c FirebaseAuth: 9c5c400d2c3055d8ae3a0284944c86fa95d48dac FirebaseAuthInterop: 6142981334978f7942ff0e8a6f8966c3b3c8ff37 FirebaseCore: 28045c1560a2600d284b9c45a904fe322dc890b6 FirebaseCoreExtension: 0659f035b88c5a7a15a9763c48c2e6ca8c0a2977 FirebaseCoreInternal: efeeb171ac02d623bdaefe121539939821e10811 FirebaseCrashlytics: 81530595edb6d99f1918f723a6c33766a24a4c86 FirebaseDynamicLinks: 61a82d43b81cd74a3cdbb1d65f07fb0241aaa553 FirebaseFirestore: 21be9ea244830f6cac15464550c2975c43f9dffc FirebaseFirestoreInternal: 0dc0762afd68192e9d45c31d3dd3017accc84333 FirebaseFunctions: 2b6ec69b93c49347025190ccb0a27cdbfd1cad66 FirebaseInAppMessaging: 1a9bba3e245cb3ff3fe96e828de2932208d6fc65 FirebaseInstallations: 558b1da7d65afeb996fd5c814332f013234ece4e FirebaseMessaging: 06c414a21b122396a26847c523d5c370f8325df5 FirebaseMessagingInterop: ffbbd63321f6a1e21dc724d382c22805c95671a0 FirebasePerformance: 085f0123064068c43f14fcf3536b57e30449e7cc FirebaseRemoteConfig: b873a427a48159082361343a85649eed3f5377ea FirebaseSessions: 2f348975f6d1c139231c180e12194161da2e0cd6 FirebaseSharedSwift: 2fbf73618288b7a36b2014b957745dcdd781389e FirebaseStorage: 8505bae8ac6662474b5b50e07759fb2765c15746 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_file_dialog: 4c014a45b105709a27391e266c277d7e588e9299 flutter_smartlook: 2087f9e3c88581998c63a2f9f518a092633722eb flutter_vibrate: 9f4c2ab57008965f78969472367c329dd77eb801 fluttertoast: 31b00dabfa7fb7bacd9e7dbee580d7a2ff4bf265 google_sign_in_ios: 1bfaf6607b44cd1b24c4d4bc39719870440f9ce1 GoogleAppMeasurement: bb3c564c3efb933136af0e94899e0a46167466a8 GoogleDataTransport: 57c22343ab29bc686febbf7cbb13bad167c2d8fe GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842 GoogleUtilities: 0759d1a57ebb953965c2dfe0ba4c82e95ccc2e34 "gRPC-C++": 2df8cba576898bdacd29f0266d5236fa0e26ba6a gRPC-Core: a21a60aefc08c68c247b439a9ef97174b0c54f96 GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae GTMSessionFetcher: 8a1b34ad97ebe6f909fb8b9b77fba99943007556 image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425 in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d leveldb-library: f03246171cce0484482ec291f88b6d563699ee06 location: 3a2eed4dd2fab25e7b7baf2a9efefe82b512d740 nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5 notification_permissions: 825ea1bf2a52ab585c53fd7b5e8e96876d735d4b package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0 PLCrashReporter: 5d2d3967afe0efad61b3048d617e2199a5d1b787 PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 PromisesSwift: 28dca69a9c40779916ac2d6985a0192a5cb4a265 RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec store_redirect: 2977747cf81689a39bd62c248c2deacb7a0d131e Stripe: 5914399ac5878056b985d56b409cb4bb1e7fc7e8 stripe_payment: 1cbe9c339c21b5ecf01035e80eea351067c67c56 Toast: ec33c32b8688982cecc6348adeae667c1b9938da url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f PODFILE CHECKSUM: 3858a08c21cdf411981870ac666518e33d394639 COCOAPODS: 1.14.3 ```
google-oss-bot commented 4 months ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

MarkDuckworth commented 4 months ago

Firestore SDKs will buffer results from multiple queries running simultaneously and raise the snapshots (call the lister provided to addSnapshotListener or return results of getDocuments) once the data for all queries is received. This ensures queries give a consistent view of the data in the database.

Based on what you have described, it sounds like the query for 1000 documents is running for a very long time on a slower network connection, possibly timing out. It is possible to avoid this delay from synchronized query results by changing how you call the SDK. For example, it may be possible for you to run the small queries first before starting the big query, break up the large query into multiple paged queries, or even use a second Firestore instance for the large queries. Here's another discussion that dives deeper on this topic: https://github.com/firebase/firebase-js-sdk/issues/6520.

Also, if you can provide logs from the Firestore SDK when this issue occurs, then we can dive deeper and confirm that the big query is indeed running for a long time and timing out.