2017-05-16 3 views
0

firebase 인증을 사용 중입니다. 사용자가 displayName, photoURL 또는 email 등과 같이 프로필을 변경하면 onAuthStateChanged 콜백이 실행되지 않지만 기본 firebase.auth().currentUser이 자동으로 업데이트됩니다.firebase.auth(). currentUser.displayName 및 기타 변경 사항을 관찰하는 방법은 무엇입니까?

사용자가 프로필을 업데이트 한 후에 UI를 업데이트해야합니다. firebase.auth().currentUser을 클라이언트 저장소 (특히 vuex 또는 redux- 같은 상점)와 동기화 상태로 유지하고 싶습니다.

firebase.auth().currentUser 변경 사항을 관찰 할 방법이 있습니까, 아니면 firebase.auth().currentUser이 변경 될 때 알림을 받기 위해 사용할 수있는 다른 후크가 있습니까?

감사합니다.

+1

현재이 기능이 있다고 생각하지 마십시오. Firebase 팀에 결함을 기록해야합니다. – hazardous

+1

함수를 호출하여 UI를 업데이트 할 수 있습니다. 예를 들어 사용자가 이름을 변경하면 함수를 호출하여 ui에 새 이름을 설정합니다. 다른 사용자가 자신의 프로필을 변경 한 경우 데이터베이스를 사용하여 데이터 변경 사항을 유지하고 ondatachange를 통해 알림 – AlwaysConfused

답변

0

Firebase 인증 사용자 프로필이 변경 될 때 콜백이 없습니다. 일반적인 패턴은 인증 리스너가 클라이언트 응용 프로그램에서 트리거 될 때마다 사용자 프로필 데이터를 데이터 저장소 (예 : 실시간 데이터베이스)에 기록하는 것입니다. 그런 다음 클라이언트는 각 사용자의 프로필 데이터가있는 위치를 청취하고 해당 변경 사항에 스스로 대응할 수 있습니다. 또한 Cloud Functions for Firebase을 사용하여 프로필 데이터가 기록 될 때 실제로 변경된 사항을 확인할 수있는 데이터베이스 쓰기 트리거를 작성하고 필요에 따라 조치를 취할 수 있습니다.

0

나를 위해 동일한 문제가 발생했습니다. 반응을 사용하고 있었고 Send verification Email에서 Email Verified으로 변경된 구성 요소를보고 싶습니다. 내가 한 일은 사용자 인스턴스에 reload 메서드를 래핑하는 함수를 만드는 것입니다. 이 약속은 약속이므로 약속이 성취되면 firebase.auth().currentUser 함수를 호출하여 현재 새로 고침 원인을 업데이트합니다. 모든 요소 라이프 사이클과 일치합니다.

const user = firebase.auth().currentUser; 
user.reload().then(() => { 
    const refreshUser = firebase.auth().currentUser; 
    // do your stuff here 
}) 

다시로드 할 문서가 있습니다. https://firebase.google.com/docs/reference/js/firebase.User#reload

희망이 도움이 될 수 있습니다. :)

관련 문제