繁体   English   中英

Firebase检查是否存在返回false,它应该返回true

[英]Firebase checking if exists returns false where it should return true

我正在尝试检查是否存在具有特定电子邮件的用户。 使用此电子邮件的用户位于数据库中,因此检查应返回true而不是false。

这是架构:

在此输入图像描述

这是代码:

final DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child("users");
userRef.orderByChild("email").equalTo("rafael.adel20@gmail.com").limitToFirst(1).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        System.out.println(dataSnapshot); //returns { key = users, value = null }
        if(dataSnapshot.getChildrenCount() > 0) {
            //user already exists (Never executed)
        } else {
            //user doesn't exists (Always executed)
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

如果setPersistenceEnabled(true) ,则使用addListenerForSingleValueEvent可以导致返回本地缓存版本的数据,而不是从服务器返回最新版本(而调用addValueEventListener将确保获得最新版本)。 另一种方法,如果使用addListenerForSingleValueEvent则调用query.keepSynced(true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM