Android 当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) {

我的Firebase数据库如下所示:

当firebase数据库中没有电子邮件val时,我想显示一条错误消息

我的代码是

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){
//访问数据库时出错
}
});

A
ChildEventListener
只能检测某个子节点的存在或子节点被更改/删除时。它无法检测到没有孩子。要检测到没有值,您需要一个
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!
    }
});