【发布时间】:2017-06-13 00:22:18
【问题描述】:
我正在创建一个注册页面,我想在其中检查输入的特定电子邮件或输入的手机是否已经存在。我认为 _emailText 作为字符串不被接受,但是如何获取电子邮件和密码。 下面是代码:
public boolean userExist(){
//private Firebase mRef = new Firebase("https://abcdefgh.firebaseio.com/users/");
mRef.child(_emailText.getText().toString()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
Toast.makeText(getBaseContext(), "Email already exist. Please choose a different one", Toast.LENGTH_SHORT).show();
_emailText.setError("Email already exist. Please choose a different one");
valid = false;
}
else{
email = _emailText.getText().toString();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
mRef.child(_mobileText.getText().toString()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
_mobileText.setError("Mobile Number already exist");
valid = false;
}
else{
mobile = _mobileText.getText().toString();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
return valid;
}
而数据库结构是这样的:
【问题讨论】:
-
您的密钥不能包含句点,因为错误状态。用其他一些字符替换它们
-
请编辑您的帖子以包含您的数据库结构
-
结构是在“abcdefgh”里面有一个用户,如果你在其中注册然后电子邮件,手机和所有被创建,我想做的是在注册时获取这些电子邮件和手机并与我的编辑文本包含的内容进行比较。
-
再次,请edit显示您的实际数据库数据
-
基本上,您无法将
mRef.child("testuser@gnail.com")处的数据添加 作为元素的键。当然,您正在尝试做mRef.orderByChild("email").equalTo("testuser@gnail.com")?
标签: android firebase firebase-realtime-database