所以我尝试进行注册,自动创建一个包含电子邮件名称的子项,但程序崩溃了。
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);
Toast工作,但是当我添加最后一行时它会崩溃 有没有办法解决这种情况,或者是否有一种简单的方法来连接用" push()"与用户?
答案 0 :(得分:1)
问题是您尝试在未编码的userEmail
中使用DatabaseReference
。 Firebase不允许使用.
(点)等关键符号。因此,为了解决这个问题,您需要对电子邮件地址进行编码,如下所示:
name@email.com - >名@电子邮件,玉米
为实现这一目标,我重新尝试使用以下方法:
static String encodeUserEmail(String userEmail) {
return userEmail.replace(".", ",");
}
要解码电子邮件,您可以使用以下方法:
static String decodeUserEmail(String userEmail) {
return userEmail.replace(",", ".");
}