diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart index fdc5a0b1..742714fc 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart @@ -4,6 +4,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'package:krow_domain/krow_domain.dart' as domain; +import '../../utils/test_phone_numbers.dart'; import '../../domain/ui_entities/auth_mode.dart'; import '../../domain/repositories/auth_repository_interface.dart'; @@ -41,7 +42,17 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { await firebaseAuth.verifyPhoneNumber( phoneNumber: phoneNumber, - verificationCompleted: (_) { + verificationCompleted: (PhoneAuthCredential credential) { + // Skip auto-verification for test numbers to allow manual code entry + if (TestPhoneNumbers.isTestNumber(phoneNumber)) { + return; + } + + // For real numbers, we can support auto-verification if desired. + // But since this method returns a verificationId for manual OTP entry, + // we might not handle direct sign-in here unless the architecture changes. + // Currently, we just ignore it for the completer flow, + // or we could sign in directly if the credential is provided. }, verificationFailed: (FirebaseAuthException e) { if (!completer.isCompleted) { diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/utils/test_phone_numbers.dart b/apps/mobile/packages/features/staff/authentication/lib/src/utils/test_phone_numbers.dart new file mode 100644 index 00000000..9a61b5ff --- /dev/null +++ b/apps/mobile/packages/features/staff/authentication/lib/src/utils/test_phone_numbers.dart @@ -0,0 +1,12 @@ +class TestPhoneNumbers { + static const List values = [ + '+15555555555', // Test User 1 + '+15551234567', // Test User 2 + '+16505551234', // Android Emulator + '+12345678910', // iOS Simulator + ]; + + static bool isTestNumber(String phoneNumber) { + return values.contains(phoneNumber); + } +}