-
Notifications
You must be signed in to change notification settings - Fork 974
Description
Operating System
Windows 10
Environment (if applicable)
VS Code (Flutter) / 일반적인 인터넷 환경(일반적인 이메일 클라이언트 간의 메일 송수신은 정상적으로 작동함) / Firebase 요금제: Blaze 플랜 (할당량 문제는 아님)
Firebase SDK Version
firebase_core: ^2.31.0 / firebase_auth: ^4.19.5 / cloud_firestore: ^4.17.3
Firebase SDK Product(s)
Auth
Project Tooling
VS Code (Flutter), Firebase
Detailed Problem Description
-
이메일 발송 문제:
- 문제: Firebase Authentication의 이메일 인증 메일이 Outlook, 네이버, 다음 등 **모든 이메일 서비스로 발송되지 않는 문제.
- 확인된 사항: Firebase 콘솔 설정과 앱 코드에는 문제가 없으며, 유료 플랜을 사용 중이라 할당량 문제도 아닙니다. 일반적인 이메일 클라이언트 간의 전송은 정상입니다.
-
Firebase 지원 문의 양식 제출 문제:
- 문제: Firebase 콘솔의 기술 지원팀에 문의를 제출하려고 하면 양식 발송 오류가 발생하는 문제.
- 확인된 사항: 다른 브라우저, 시크릿 모드에서도 동일한 오류가 발생하며, 이는 단순한 사용자 환경 문제가 아닌 Firebase 시스템 자체의 일시적 오류일 가능성이 높습니다.
Steps and code to reproduce issue
문제 재현 단계:
앱에서 새로운 이메일 주소로 회원가입을 시도합니다.
이메일과 비밀번호를 입력하고 '회원가입' 버튼을 누릅니다.
이메일 인증 화면으로 이동하지만, 인증 메일이 어떤 이메일 주소로도 수신되지 않습니다.
관련 코드:
lib/providers/auth_provider.dart
Dart
...
Future signUpWithEmailAndPassword(String email, String password) async {
try {
final userCredential = await _auth.createUserWithEmailAndPassword(
email: email,
password: password,
);
if (userCredential.user != null) {
await userCredential.user!.sendEmailVerification();
developer.log('Verification email sent to ${userCredential.user!.email}');
}
} on FirebaseAuthException {
rethrow;
}
}
...
lib/screens/email_signup_screen1.dart
Dart
...
Future _handleSignUp() async {
if (!_formKey.currentState!.validate()) return;
setState(() {
_isLoading = true;
_statusMessage = '';
});
final authProvider = Provider.of<AppAuthProvider>(context, listen: false);
final email = _emailController.text;
final password = _passwordController.text;
try {
await authProvider.signUpWithEmailAndPassword(email, password);
// 회원가입 성공 및 이메일 전송 후 처리
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => EmailVerifyScreen(
email: email,
password: password,
),
),
);
} on FirebaseAuthException catch (e) {
_showStatusMessage(
_getFirebaseErrorMessage(e.code), AppColors.errorRed);
} catch (e) {
_showStatusMessage('알 수 없는 오류가 발생했습니다: $e', AppColors.errorRed);
} finally {
if (mounted) {
setState(() {
_isLoading = false;
});
}
}
}
...
예상 동작:
회원가입 완료 후, 사용자에게 인증 이메일이 즉시 발송되어야 합니다.
실제 동작:
회원가입은 성공적으로 이루어지지만, 어떤 이메일 주소로도 인증 메일이 도착하지 않습니다. 또한, 이 문제를 보고하려던 Firebase 지원팀 문의 양식조차 제출되지 않습니다.