DataSnapShot FirebaseDatabase返回null,为什么?

时间:2017-12-03 10:31:05

标签: java android

我试图检索数据库中指定注释中的数据值。这是我的代码

        DatabaseReference ref =FirebaseDatabase.getInstance().getReference(USERID);
    DatabaseReference refYear =ref.child(extractYear);
    DatabaseReference refMonth =refYear.child(extractMonth);
    DatabaseReference refDay =refMonth.child(extractDay);
    refDay.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.getKey().equals(extractDay)){
                Log.i(TAG, dataSnapshot.getValue(String.class));
            }
            else {
                Log.i(TAG,"Failed to get value ..");
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

这是我的firebase数据库

{
    "k5yGCSKwjjXxnhCQGuy9jJzdIAu2" : {
         "OverTime" : {
                "2017" : {
                     "12" : {
                             "01" : "2",
                             "02" : "3",
                             "03" : "2",
                             }
                           }
                         }

但代码总是给dataSnapShot null的值。我只是不知道为什么 。你能解释一下吗?谢谢

1 个答案:

答案 0 :(得分:0)

根据上面的评论,您可以执行类似

的操作
        Map<String, String> map = (Map) dataSnapshot.getValue();
        if (map != null) {
            String value = map.get("extractDay");
        }