Android dataSnapshop.getValue(MyClass.class)关闭我的应用程序-我无法从Firebase数据库读取数据

Android dataSnapshop.getValue(MyClass.class)关闭我的应用程序-我无法从Firebase数据库读取数据,android,database,firebase,Android,Database,Firebase,我正在制作一个链接到Firebase的android应用程序。我对Firebase和Android应用程序开发都是新手。在数据库中添加来自同一类的数据效果很好,但读取该数据会关闭我的应用程序 下面是我的日志: 07-29 20:20:19.376 23784 23784 D AndroidRuntime:关闭虚拟机 07-29 20:20:19.378 23784 23784 E AndroidRuntime:致命异常:主 07-29 20:20:19.378 23784 23784 E And

我正在制作一个链接到Firebase的android应用程序。我对Firebase和Android应用程序开发都是新手。在数据库中添加来自同一类的数据效果很好,但读取该数据会关闭我的应用程序

下面是我的日志: 07-29 20:20:19.376 23784 23784 D AndroidRuntime:关闭虚拟机 07-29 20:20:19.378 23784 23784 E AndroidRuntime:致命异常:主 07-29 20:20:19.378 23784 23784 E AndroidRuntime:进程:,PID:23784 07-29 20:20:19.378 23784 23784 E AndroidRuntime:com.google.firebase.database.DatabaseException:类缺少没有参数的构造函数 下面是我的代码:

public class NewFragment extends Fragment {

    ....
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.new, container, false);
.....

        final FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference simpleClassDatabaseReference = database.getReference().child("SimpleClass");
......    
            ChildEventListener childEventListener = new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    SimpleClass simpleClass = dataSnapshot.getValue(SimpleClass.class);
                }

                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {

                }

                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            };simpleClassDatabaseReference.addChildEventListener(childEventListener);

        }
        return v;
    }
}
这是我的简单课程:

public class SimpleClass {
    String simpleWord;
    String secondWord;

    public SimpleClass (String simpleWord, String secondWord){
        this.simpleWord = simpleWord;
        this.secondWord = secondWord;
    }

    public String getSimpleWord() {
        return simpleWord;
    }

    public String getSecondWord() {
        return secondWord;
    }
}
这就是我在Firebase中编写该类的方式:

SimpleClass simpleClass = new SimpleClass("HI!!", "Hi again!!");
DatabaseReference mSimpleClassDatabaseReference = database.getReference().child("SimpleClass");
mSimpleClassDatabaseReference.push().setValue(simpleClass);
因此,要解决此问题,请尝试这样做:

public class SimpleClass {
    String simpleWord;
    String secondWord;

    public SimpleClass (){
        //construtor with no arguments
    }

    public SimpleClass (String simpleWord, String secondWord){
    this.simpleWord = simpleWord;
    this.secondWord = secondWord;
}

    public String getSimpleWord() {
        return simpleWord;
    }

    public String getSecondWord() {
        return secondWord;
    }
}

您的错误是Simple类需要一个没有参数的构造函数。

Simple类需要一个没有参数的构造函数,您需要创建这样的构造函数:public SimpleClass{}