2017-05-21 5 views
0

With this Question in mined 여기에 추가 질문이 있습니다.FirebaseAuth 사용자 uid를 사용하는시기와 전자 메일을 식별자로 사용하는 경우

필자의 가정에 맞춰 나를 수정하면 제 학습 곡선이 공격적입니다. :).

만드는 경우 Firebase를 백엔드 스토리지로 사용하는 채팅 앱에 채팅 시스템 식별자 인 FirebaseAuth.getInstance().getCurrentUser().getUid()을 채팅 회원 식별자로 사용하면 사용자가 계정을 삭제할 수 있도록 허용하고 계정 연결을 허용하지 않는 것이 좋습니다. uid가 바뀌면 데이터베이스가 손상 될 것입니다.

내 다음 가정은 이제 채팅 앱 내에 보안 사용자 ID를 보유하려면 trusted provider이기 때문에 로그인 된 전자 메일 주소를 사용할 수 있다는 것입니다. 결론적으로 사용자의 식별자로 getCurrentUser().getUid() uid를 사용하지 않겠습니까?

답변

1

getCurrentUser().getUid()을 사용하는 것은 좋지 않지만 더 좋은 아이디어는 email address의 식별자로 사용하는 것입니다. 저는 사용자가 계정을 삭제하고 반품하는 경우 uid이 분명히 다를 것이기 때문에 이것을 말하고 있습니다. 중포 기지 키에 도트 기호 .을 허용하지 않기 때문에, 이메일 주소는 다음과 같이 인코딩해야합니다 :

[email protected] -> 이름 @ 이메일, COM

으로 당신이 아마 참조 , .,으로 변경했습니다. 이렇게하려면 다음 방법을 사용하십시오.

static String encodeUserEmail(String userEmail) { 
    return userEmail.replace(".", ","); 
} 

static String decodeUserEmail(String userEmail) { 
    return userEmail.replace(",", "."); 
} 

희망이 있습니다.

+0

감사합니다. 어쩌면 나는 올바른 길에있을 것입니다. 전자 메일로 프로그래밍 방식으로 성가시다면 어떨까요? 해시를 사용하는 경우와 키의 해시를 사방에 사용하는 경우가 있습니다. –

+1

실제로는 매우 간단합니다. 사용자 이메일을 한번 표시하고 싶을 때만 데이터베이스에 추가하고 디코딩 할 때만 사용자 이메일을 인코딩하면됩니다. 해싱은 필요하지 않습니다. 'SharedPreferences'에 저장하고 전체 응용 프로그램보다 사용하는 것이 좋습니다. –

+0

Facebook 계정으로 전화 번호 만 사용하여 계정을 만들 수 있습니다. 어떻게 처리할까요? –