2017-09-14 18 views
0

Firebase添加具有特定名称/ 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); 

敬酒的工作,但是当我添加的最后一行就崩溃 有什么办法来解决这种情况还是有一种简单的方法来将用“push()”创建的孩子与用户连接起来?

+0

什么是错误? –

+0

什么是arrayList?你想要哪种类型的结构? –

+0

它只是崩溃.. coudlnt找到一个错误报告 – Rockstone

回答

1

问题是,您正尝试在未编码的DatabaseReference中使用userEmail。 Firebase不允许使用像.(点)这样的关键字符。因此,为了解决这个问题,你需要编码的电子邮件地址是这样的:

[email protected] - >名@电子邮件,COM

要做到这一点,我recomand您使用以下methid:

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

并在邮件解码,可以使用下面的方法:

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