firebase / firebase-ios-sdk

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

sendPasswordResetEmail not throwing auth/user-not-found exception #12310

Open Luna0214 opened 5 months ago

Luna0214 commented 5 months ago

Description

Operating System macOS(Sonoma 14.2.1)

Browser Version Chrome Version 120.0.6099.234(Official Build) (x86_64)

Firebase SDK Version 13.0.2

Firebase SDK Product: Auth

Describe your project's tooling Flutter app in VScode

Describe the problem I am trying to make the resetpassword page in my flutter app on IOS. But the problem is sendPasswordResetEmail function is not throwing an exception even when I type in fake email address and press send reset link email button. P.S. other exception is work great: flutter: [firebase_auth/missing-email] An email address must be provided. flutter: [firebase_auth/invalid-email] The email address is badly formatted.

the code:

Future passwordReset() async {
    try {
      await FirebaseAuth.instance
          .sendPasswordResetEmail(email: emailController.text.trim());
      return print("sent");
    } on FirebaseAuthException catch (e) {
      return print(e);
    }
  }

Reproducing the issue

No response

Firebase SDK Version

13.0.2

Xcode Version

15.1

Installation Method

CocoaPods

Firebase Product(s)

Authentication

Targeted Platforms

iOS, macOS

Relevant Log Output

No response

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

No response

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 - 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) - cloud_firestore (4.14.0): - Firebase/Firestore (= 10.18.0) - firebase_core - Flutter - nanopb (< 2.30910.0, >= 2.30908.0) - Firebase/Auth (10.18.0): - Firebase/CoreOnly - FirebaseAuth (~> 10.18.0) - Firebase/CoreOnly (10.18.0): - FirebaseCore (= 10.18.0) - Firebase/Firestore (10.18.0): - Firebase/CoreOnly - FirebaseFirestore (~> 10.18.0) - firebase_auth (4.16.0): - Firebase/Auth (= 10.18.0) - firebase_core - Flutter - firebase_core (2.24.2): - Firebase/CoreOnly (= 10.18.0) - Flutter - FirebaseAppCheckInterop (10.20.0) - FirebaseAuth (10.18.0): - FirebaseAppCheckInterop (~> 10.17) - FirebaseCore (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - RecaptchaInterop (~> 100.0) - FirebaseCore (10.18.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GoogleUtilities/Logger (~> 7.12) - FirebaseCoreExtension (10.20.0): - FirebaseCore (~> 10.0) - FirebaseCoreInternal (10.19.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseFirestore (10.18.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) - FirebaseSharedSwift (10.20.0) - Flutter (1.0.0) - flutter_secure_storage (6.0.0): - Flutter - google_sign_in_ios (0.0.1): - Flutter - FlutterMacOS - GoogleSignIn (~> 7.0) - 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/Logger (7.12.0): - GoogleUtilities/Environment - 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 - "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.2.0) - leveldb-library (1.22.2) - nanopb (2.30909.1): - nanopb/decode (= 2.30909.1) - nanopb/encode (= 2.30909.1) - nanopb/decode (2.30909.1) - nanopb/encode (2.30909.1) - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - PromisesObjC (2.3.1) - RecaptchaInterop (100.0.0) DEPENDENCIES: - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - Flutter (from `Flutter`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) SPEC REPOS: trunk: - abseil - AppAuth - BoringSSL-GRPC - Firebase - FirebaseAppCheckInterop - FirebaseAuth - FirebaseCore - FirebaseCoreExtension - FirebaseCoreInternal - FirebaseFirestore - FirebaseFirestoreInternal - FirebaseSharedSwift - GoogleSignIn - GoogleUtilities - "gRPC-C++" - gRPC-Core - GTMAppAuth - GTMSessionFetcher - leveldb-library - nanopb - PromisesObjC - RecaptchaInterop EXTERNAL SOURCES: cloud_firestore: :path: ".symlinks/plugins/cloud_firestore/ios" firebase_auth: :path: ".symlinks/plugins/firebase_auth/ios" firebase_core: :path: ".symlinks/plugins/firebase_core/ios" Flutter: :path: Flutter flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" google_sign_in_ios: :path: ".symlinks/plugins/google_sign_in_ios/darwin" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" SPEC CHECKSUMS: abseil: 926fb7a82dc6d2b8e1f2ed7f3a718bce691d1e46 AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33 cloud_firestore: 73eece22ce25a0565238c283ee9990f1618d8063 Firebase: 414ad272f8d02dfbf12662a9d43f4bba9bec2a06 firebase_auth: 8e9ec02991ca4659111cc671c84d0c010b6bfb26 firebase_core: 0af4a2b24f62071f9bf283691c0ee41556dcb3f5 FirebaseAppCheckInterop: e81bdb1cdb82f8e0cef353ba5018a8402682032c FirebaseAuth: 12314b438fa76048540c8fb86d6cfc9e08595176 FirebaseCore: 2322423314d92f946219c8791674d2f3345b598f FirebaseCoreExtension: 0659f035b88c5a7a15a9763c48c2e6ca8c0a2977 FirebaseCoreInternal: b444828ea7cfd594fca83046b95db98a2be4f290 FirebaseFirestore: 171bcbb57a1a348dd171a0d5e382c03ef85a77bb FirebaseFirestoreInternal: 0dc0762afd68192e9d45c31d3dd3017accc84333 FirebaseSharedSwift: 2fbf73618288b7a36b2014b957745dcdd781389e Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be google_sign_in_ios: 1bfaf6607b44cd1b24c4d4bc39719870440f9ce1 GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842 GoogleUtilities: 0759d1a57ebb953965c2dfe0ba4c82e95ccc2e34 "gRPC-C++": 2df8cba576898bdacd29f0266d5236fa0e26ba6a gRPC-Core: a21a60aefc08c68c247b439a9ef97174b0c54f96 GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae GTMSessionFetcher: 41b9ef0b4c08a6db4b7eb51a21ae5183ec99a2c8 leveldb-library: f03246171cce0484482ec291f88b6d563699ee06 nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5 path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21 PODFILE CHECKSUM: 70d9d25280d0dd177a5f637cdb0f0b0b12c6a189 COCOAPODS: 1.14.3 ```
google-oss-bot commented 5 months ago

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

rizafran commented 5 months ago

Thanks for filing, @Luna0214. I tried to reproduce the issue and I was able to get the same behavior. Per checking, this seems like an intended behavior when the enumeration protection feature is enabled.

Luna0214 commented 5 months ago

@rizafran Thank you for your attention and giving me a great answer! I really appreciated. Well, in my perspective, the enumeration protection feature is good for protecting the firebase server. On the other hand, what if some random attackers using the "sendPasswordResetEmail" function to make massive traffic to someone's email address? What if the someone is not even in my firebase auth database? Is that possible to protect with the "too-many-request" exception as "signInWithEmailAndPassword" function? I just wonder how it works in terms of safety issues.

JasonBennett41 commented 3 months ago

I don't understand how the documentation in firebase_auth_provider.dart does not account for this... It still shows that there is a firebaseauthexception that should be thrown. I am growing to really hate google for not providing proper clarity on these types of things.

The other day I was trying to figure out why the coordinates pulled from exif data of images were null, turns out they do not allow you to access this data via the android imagepicker and REDACT it in the name of privacy.. Even though user has already granted permissions to the photo. Someone had to report it as a bug before they got around to telling anyone about this change.

If I never have to spend another hour debugging only to find it's actually an "intended behavoir" from Google it'll be too soon.