안녕하세요.
파이어베이스로 회원 인증 하는 부분 관련해서 질문이 있어서 글 올립니다.
result.user?.updateDisplayName('john');
이걸 응용해서 회원 가입 화면에서
email, 비밀번호, 이름 까지 텍스트에디팅콘트롤러로 입력받고,
signUp 함수로 다음과 같이 작성하고, 회원가입 버튼 눌렀을 때 이 함수를 실행하게 했습니다.
signUp(em, pw, nm) async {
//print(nm);
try {
var result =
await auth.createUserWithEmailAndPassword(
email: em,
password: pw,
);
result.user?.updateDisplayName(nm);
print('가입후');
print(result.user);
} catch (e) {
print(e);
}
}
이렇게 했을 때, 입력한 아이디와 비번으로 회원가입은 되었는데,
result.user 콘솔에 찍힌거 보면
디스플레이 네임이 null 값이어서요.
저 함수 내에서 nm(name) 찍어봤을때 값 찍히는거 확인했구요.
혹시나 updateDisplayName(nm) 이 완료되기 전에 프린트가 실행되서 그런가 해서
여기 앞에 await 붙여봐도 마찬가지 입니다.
답변 부탁드립니다. 감사합니다.
+ 추가로, 기본적으로 유저정보에 있는 값(이름, 폰번호 정도?) 외에 다른 값이 회원가입할 때 필요하다고 한다면,
uid 와 필요한 값들을 담을 필드로 구성된 컬렉션을 새로 만들고,
(예를들어서 생일, 성별, 주소 등) 필요한 값을 화면에서 입력 받은 후에 email, 비번으로는 파이어베이스 이메일 가입을 하고,
거기서 가져온 uid 와 다른 입력받은 값, 생일, 성별, 주소 등등을
새로 만든 컬렉션에 저장하는 식으로 하는게 맞나요?