2017-09-14 4 views
0

일 때 Firebase은 특정 Name/chrash를 추가했습니다. 따라서 전자 메일의 이름을 가진 자식을 자동으로 생성하지만 프로그램이 충돌하는 등록을 시도합니다.이름이 참조 (Firebase 사용자에게) (Android)

DatabaseReference mDatabase; 
private Firebase firebase; 
private FirebaseAuth mAuth; 


firebase.child("new5").setValue(arrayList); 
mDatabase.child("new5").setValue(arrayList); 

이 두 옵션은 완벽하게 작동하지만 난은 사용자와 함께 그것을 확인하려고하면

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 
String userEmail = user.getEmail().toString(); 
     Toast.makeText(MainActivity.this,userEmail,Toast.LENGTH_SHORT).show(); 
mDatabase.child(userEmail).setValue(arrayList); 

토스트 작업,하지만 난 마지막 줄을 추가 할 때 충돌을 해결하는 방법이 있나요 이 상황이나 "푸시()"로 만든 아이를 사용자와 연결하는 간단한 방법이 있습니까?

+0

:

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

그리고 이메일을 디코딩하기 위해, 다음과 같은 방법을 사용할 수 있습니다 오류가 무엇입니까? –

+0

arrayList 란 무엇입니까? 그리고 원하는 유형의 구조? –

+0

그냥 chraslnt 오류 보고서를 찾으십시오. – Rockstone

답변

1

인코딩되지 않은 DatabaseReference에서 userEmail을 사용하려고하면 문제가 발생합니다. Firebase은 . (점)과 같은 주요 기호를 허용하지 않습니다. > 이름 @ 이메일,

는이를 위해 COM, 내가 사용하도록 recomand -

[email protected] : 그래서이 문제를 해결하기 위해,이 같은 이메일 주소를 인코딩해야 다음 methid는 :

static String decodeUserEmail(String userEmail) { 
    return userEmail.replace(",", "."); 
} 
관련 문제