유저뷰모델이 초기화 되면서 UserViewModel의 멤버 변수인 FirebaseAuth가 초기화 된다.
FirebaseAuth의 email을 인식해서 회원을 삭제하는데, null을 받으므로 회원 삭제가 진행되지 않는다.
해결 방안
~~1. 유저의 정보를 담는 UserViewModel을 activityviewmodels로 초기화하기.
-> 애초에 유저의 정보는 액티비티 내내 필요하기 때문에, 매번 초기화할 필요가 없어서. 액티비티 뷰모델로 프래그먼트 간에 유저 정보를 공유하는 게 나을 수도 있다.~~
postValue 메서드로 라이브데이터(FirebaseAuth)를 업데이트하면서 생긴 문제였다.
setValue는 메인 스레드에서 값을 변경하는데 반해. postValue로 라이브데이터를 업데이트할 시, 백그라운드에서 데이터를 업데이트한다.
따라서, 라이브데이터가 업데이트하는데 시간이 걸릴 수 있다.
프래그먼트의 onViewCreated나 액티비티에 onCreate에서 ViewModel을 초기화하면
프래그먼트가 보이기 전에 postValue가 진행되어, 화면에 프래그먼트가 보이기 전에 라이브데이터의 값이 업데이트 된다.
유저뷰모델이 초기화 되면서 UserViewModel의 멤버 변수인 FirebaseAuth가 초기화 된다. FirebaseAuth의 email을 인식해서 회원을 삭제하는데, null을 받으므로 회원 삭제가 진행되지 않는다.
해결 방안~~1. 유저의 정보를 담는 UserViewModel을 activityviewmodels로 초기화하기. -> 애초에 유저의 정보는 액티비티 내내 필요하기 때문에, 매번 초기화할 필요가 없어서. 액티비티 뷰모델로 프래그먼트 간에 유저 정보를 공유하는 게 나을 수도 있다.~~postValue 메서드로 라이브데이터(FirebaseAuth)를 업데이트하면서 생긴 문제였다. setValue는 메인 스레드에서 값을 변경하는데 반해. postValue로 라이브데이터를 업데이트할 시, 백그라운드에서 데이터를 업데이트한다. 따라서, 라이브데이터가 업데이트하는데 시간이 걸릴 수 있다. 프래그먼트의 onViewCreated나 액티비티에 onCreate에서 ViewModel을 초기화하면 프래그먼트가 보이기 전에 postValue가 진행되어, 화면에 프래그먼트가 보이기 전에 라이브데이터의 값이 업데이트 된다.