0

Firebase 인증을 사용하고 있고 코드 작성 중에 사용자가 성공적으로 로그인 한 경우 User user = FirebaseAuth.getInstance().getCurrentUser;을 사용하여 모든 활동에서 사용자 데이터를 가져올 수 있다는 것을 깨달았지만 사용자 저장 가능 여부가 혼란 스럽습니다. 사용자 로그인 후 sharedPreferences의 데이터 또는 User user = FirebaseAuth.getInstance().getCurrentUser;을 사용하여 원하는 작업으로 사용자 데이터를 얻을 수 있습니다. 따라서 firebase 사용자 데이터를 사용하는 것이 바람직한 방법입니다. 그리고 다른 방법을 제안하면 항상 환영합니다. 미리 감사드립니다.Firebase 사용자 데이터 저장소 문제

답변

1

사용자 데이터는 FirebaseAuth.getInstance(). getCurrentUser()를 사용하여 사용자 ID 또는 전자 메일 주소와 같은 로그인 정보로 제한됩니다. 사용하기에 충분하다면 괜찮습니다.

sharedpreferences에 저장된 데이터를 가져 오려면 PreferencesUtils 클래스를 정의 할 수 있습니다. 클래스는 싱글 톤이거나 정적 멤버가 있습니다. 그렇다면이 회원을 어디에서나 호출 할 수 있습니다.

도움이되기를 바랍니다 .. 질문 사항이 있으면 알려주세요.

+0

답장을 보내 주셔서 감사합니다. @ShineMan 답장을 보내지만 FirebaseUser 객체를 사용하여 사용자 데이터를 가져와 클래스를 만들 필요가 없으며 사용자 데이터와 관련된 보안 문제도없고 단지 userName, userImage 만 가져오고 싶습니다. 및 사용자 ID. –

+0

예, 그렇다면 가장 좋은 방법은 FirebaseAuth.getInstance(). getCurrentUser()를 사용하는 것입니다. – ShineMan

+0

감사합니다. 사용자 데이터 저장과 관련하여 혼란스러워합니다. –

0

나는 AuthStateListener을 사용하여 인증 된 사용자의 가능한 변경 사항을 듣고 변경할 수있는 경우에만 해당 사용자 객체의 변경 사항을 해당 수신기에 적용합니다. 리스너 콜백에 대한 응답이 변경 될 때만 변경할 수 있다는 것을 알고있을 때 currentUser에 계속해서 ping을 수행하는 것은 가치가 없습니다.

1

업데이트 된 사용자 인스턴스를 제공하기 때문에 항상 firebase 사용자 인스턴스를 사용하십시오. sharedPreferences에 사용자 데이터를 저장하려는 경우 사용자 데이터를 업데이트 할 때 항상 sharedPreferences에 사용자 정보를 저장해야합니다.

관련 문제