현재 진행하고 있는 프로젝트에서 Firebase 전화번호 로그인을 사용하고 있는데,
react native 버전을 올리면서 프로젝트를 다시 세팅하던 중 기존 전화번호 로그인이 작동하지 않는 문제가 발생했다.
전화번호를 인증하면 reCAPTCHA 로 넘어가는데 이후 redirect 되지 못하고 이렇게 blank 화면이 유지되어 로그인이 되지 않았다. stackoverflow에 같은 문제가 있어 여러가지 방법을 적용해보았다.
우선 objective-c 는 건드리기 싫어서 다른 항목들부터 체크해보았다.
혹시 xcode에서 reverse-client-id를 urlschemes에 잘못 입력: 아님
backgroundMode capability에서 background fetch 체크했는가?: 했음
빌드폴더 전부 초기화 후 다시 실행: 똑같이 안됨
그래서 recaptcha의 callback 을 직접 redirect 해주는 코드를 추가해야한다는 답변을 참고하여
AppDelegate.m에 아래와 같이 코드를 추가했다.
...
- (BOOL) application: (UIApplication *) app
openURL: (NSURL *) url
options: (NSDictionary <UIApplicationOpenURLOptionsKey, id> *)
options {
if ([[FIRAuth auth] canHandleURL: url]) {
return YES;
} else {
// URL not auth related, developer should handle it.
return NO;
}
}
...
end
아래 코드를 추가하니 로그인이 정상적으로 작동되었다!