Android 当firebase数据库中没有电子邮件val时,如何显示错误消息
我的Firebase数据库如下所示: 当firebase数据库中没有电子邮件val时,我想显示一条错误消息 我的代码是Android 当firebase数据库中没有电子邮件val时,如何显示错误消息,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我的Firebase数据库如下所示: 当firebase数据库中没有电子邮件val时,我想显示一条错误消息 我的代码是 mRef.orderByChild("email").equalTo(val).addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) {
mRef.orderByChild("email").equalTo(val).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
User user = dataSnapshot.getValue(User.class);
textView.setText("Welcome " + user.name );
System.out.println(user.name + "\n" + user.email + "\n" + user.tell);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
User user = dataSnapshot.getValue(User.class);
textView.setText("Welcome " + user.name );
System.out.println(user.name + "\n" + user.email + "\n" + user.tell);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
mQuery=databaseReference.limitToLast(1).orderByChild(“电子邮件”).equalTo(类别);
mQuery.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Log.i(标记“onDataChange:+dataSnapshot.toString());
GenericTypeIndicator t=新的GenericTypeIndicator(){};
试一试{
Map userList=dataSnapshot.getValue(t);
}捕获(异常){
//firebase中不存在错误UserInfo
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
//访问数据库时出错
}
});
AChildEventListener
只能检测某个子节点的存在或子节点被更改/删除时。它无法检测到没有孩子。要检测到没有值,您需要一个ValueEventListener
:
mRef.orderByChild("email").equalTo(val).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildrenCount() == 0) {
System.out.println("No user with email "+val);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
throw firebaseError.toException(); // don't ignore onCancelled!
}
});
有什么问题吗?查询将用户与
电子邮件:
匹配。如果某项功能不起作用,则问题可能出在您实现ChildEventListener
的方式上。请提供以改进获取帮助的更改。new ChildEventListener…
不是有效的Java代码。请您的问题包含一个(包括文本中的最小示例数据集),而不是这个。Hii@FrankvanPuffelen,我的问题是,当我使用电子邮件搜索firebase数据库中的数据时,我会使用该电子邮件获取数据,并且它正在工作,但我还想显示一条消息,如果在firebase上无法发送电子邮件,则我希望显示类似“无效用户”的消息。@FrankvanPuffelen,上述代码仅适用于firebase上有电子邮件的情况。如果发送电子邮件,我想显示一条错误消息。在firebase上不可用。谢谢Hanks@FrankvanPuffelen,它起作用了。非常感谢。
mRef.orderByChild("email").equalTo(val).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildrenCount() == 0) {
System.out.println("No user with email "+val);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
throw firebaseError.toException(); // don't ignore onCancelled!
}
});