Android 获取null而不是布尔值

Android 获取null而不是布尔值,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我有一个firebase数据库,如下所示: 返回: DATASNAPSHOT: {user15={name=Pranjal, lastName=Srivastava, email=pranjal.pranz@gmail.com, ifQuestUser=true, organization=Primus}} 调用datasnapshot.child('ifQuestUser')它给出值 IF QUEST: DataSnapshot { key = ifQuestUser, value = n

我有一个firebase数据库,如下所示:

返回:

DATASNAPSHOT: {user15={name=Pranjal, lastName=Srivastava, email=pranjal.pranz@gmail.com, ifQuestUser=true, organization=Primus}}
调用
datasnapshot.child('ifQuestUser')它给出值

IF QUEST: DataSnapshot { key = ifQuestUser, value = null }
它的值显示为
null
,而不是
true
,我不明白为什么。

获取ifQuestUser

Query userQ = db.child("users").orderByChild("email").equalTo(email);
userQ.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
            Users user = dataSnapshot1.getValue(Users.Class);
            if(user.isIfQuestUser())
            {
            // ...
            }

        }

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

我猜您有一个模型类
Users
拥有firebase db中的所有字段,并且将
ifQuestUser
的类型设置为
Boolean

首先检查声明密钥的命名约定

其次,不要在模型类中使用密钥。使用类似这样的
user.isQuestUser()
而不是
user.isIfQuestUser()
,因为firebase在这种情况下返回
null
。我也有同样的问题

Query userQ = db.child("users").orderByChild("email").equalTo(email);
userQ.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
            Users user = dataSnapshot1.getValue(Users.Class);
            if(user.isIfQuestUser())
            {
            // ...
            }

        }

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});