Java 如何解决Android Firebase无设置器/字段问题?

Java 如何解决Android Firebase无设置器/字段问题?,java,android,firebase,firebase-realtime-database,chat,Java,Android,Firebase,Firebase Realtime Database,Chat,我想根据消息ID号接收发送给用户的消息。但是,我无法修复No setter/field错误 如何解决这个问题?方法是什么 消息Java类 getMessage类 要解决此问题,请使用以下代码行: String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseRe

我想根据消息ID号接收发送给用户的消息。但是,我无法修复No setter/field错误

如何解决这个问题?方法是什么

消息Java类 getMessage类
要解决此问题,请使用以下代码行:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference messageRef = rootRef.child("Users").child(uid).child("message").child(toUid).child("message");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<Messages> messagesList = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            Messages messages = ds.getValue(Messages.class);
            messagesList.add(messages);
            Log.d("TAG", messages.getSendMessage());
        }

        //Do what you need to do with your messagesList
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
messageRef.addListenerForSingleValueEvent(valueEventListener);
String uid=FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef=FirebaseDatabase.getInstance().getReference();
DatabaseReference messageRef=rootRef.child(“用户”).child(uid).child(“消息”).child(toUid).child(“消息”);
ValueEventListener ValueEventListener=新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
List messagesList=new ArrayList();
对于(DataSnapshot ds:DataSnapshot.getChildren()){
Messages=ds.getValue(Messages.class);
messagesList.add(消息);
Log.d(“标记”,messages.getSendMessage());
}
//对邮件列表执行您需要执行的操作
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
Log.d(标记,databaseError.getMessage());
}
};
messageRef.addListenerForSingleValueEvent(valueEventListener);
其中,
toUid
是接收消息的用户的uid


如果你想在某个时候尝试一下,你可以在这里找到一个关于如何创建

的教程,我相信你需要降低一个级别;因此,获取
child(“message”)
的子对象并迭代,然后获取值。正如Andy所指出的,只需执行以下databaseReference=FirebaseDatabase.getInstance().getReference(“用户”).child(“message”).getRef();所以您希望在
message
节点下获取消息,在本例中是这两条消息,对吗?请回复@AlexMamo@AlexMamo是的,好的,两条消息。@enivicvokkey好的,我会在短时间内给你写一个答案。嗨,enivicvokkey!你试过我上面的解决方案了吗,有效吗?
 public void getMessage(){

    databaseReference = FirebaseDatabase.getInstance().getReference("Users").getRef();
    databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (dataSnapshot.exists()) {
                messagesList = new ArrayList<>(); //Initialize the list
                for (DataSnapshot postSnapShot : dataSnapshot.getChildren()) {

                    Messages messages = postSnapShot.child("messages").child(auth.getUid()).child("message").getValue(Messages.class);
                    messagesList.add(messages);
                }
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {}
    });
}
/com.****.chat W/ClassMapper: No setter/field for 05102018025211 found on class com.****.chat.Model.Messages
No setter/field for 05102018024849 found on class com.onsoftware.chat.Model.Messages
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference messageRef = rootRef.child("Users").child(uid).child("message").child(toUid).child("message");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<Messages> messagesList = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            Messages messages = ds.getValue(Messages.class);
            messagesList.add(messages);
            Log.d("TAG", messages.getSendMessage());
        }

        //Do what you need to do with your messagesList
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
messageRef.addListenerForSingleValueEvent(valueEventListener);