Android 从Firebase数据库检索空值

Android 从Firebase数据库检索空值,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在我的Firebase数据库中按键搜索,但它检索空值,我不知道为什么 data.getUrl()或data.getText()都给我空值 在调试中,在行之前 test data = dataSnapshot.getValue(test.class); 它告诉我数据应该检索到我要查找的内容,但当该行执行时,它给我空值 数据库结构: { "images" : { "partner " : { "text" : "partner", "url" : "http

我正在我的Firebase数据库中按键搜索,但它检索空值,我不知道为什么

data.getUrl()
data.getText()
都给我空值

在调试中,在行之前

test data = dataSnapshot.getValue(test.class);
它告诉我数据应该检索到我要查找的内容,但当该行执行时,它给我空值

数据库结构:

{
  "images" : {
    "partner " : {
      "text" : "partner",
      "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565650/sister_x3lv6j.png"
    },
    "sister" : {
      "text " : "sister",
      "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565650/sister_x3lv6j.png"
    }
  }
}
测试等级:

package com.example.android.testy;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown=true)
public class test {
    private String text;
    private String url;

    public test() {
        // empty default constructor, necessary for Firebase to be able to deserialize blog posts
    }
    public String getText() {
        return text;
    }

    public String getUrl() {
        return url;
    }
}
主要活动:

package com.example.android.testy;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.Query;
import com.firebase.client.ValueEventListener;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Firebase.setAndroidContext(this);

        Firebase rootRef = new Firebase("https://test-219f8.firebaseio.com/images");
        Query queryRef = rootRef.orderByKey().equalTo("sister");
        queryRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                    test data = dataSnapshot.getValue(test.class);

                    System.out.println(data.getUrl());

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });

    }


}

您需要使用
addChildEventListener
而不是
addValueEventListener

试试这个:

queryRef.addChildEventListener(new ChildEventListener() {
    public void onChildAdded(DataSnapshot dataSnapshot, String previousKey) {
        test data = dataSnapshot.getValue(test.class);

                    System.out.println(data.getUrl());
    }
    public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    }
    public void onChildRemoved(DataSnapshot dataSnapshot) {
    }
    public void onChildMoved(DataSnapshot dataSnapshot, String s) {
    }
    public void onCancelled(FirebaseError firebaseError) { }
});

您需要使用
addChildEventListener
而不是
addValueEventListener
我可以问一下为什么它不能与addValueEventListener一起使用吗?我可以问一下为什么不能与addValueEventListener一起使用吗?因为
image
引用的值由一个
伙伴和一个
姐妹组成
text
url