gpt4 book ai didi

Android Firebase DataSnapshot 类向自定义 java 对象返回 null

转载 作者:行者123 更新时间:2023-12-05 00:17:09 25 4
gpt4 key购买 nike

我正在实现 FirebaseDataSnapshot 将 null 返回给自定义 java 对象。我也尝试通过使用此网站遵循一些答案来解决此问题,但我不知道我的代码中的确切问题在哪里。在这里,我附上了我的 firebase 数据库屏幕截图,请帮助我解决此问题 enter image description here

下面是我的模型

        public class ChatModel {

private String messege;
private String user;
private int intType;

public ChatModel(){}

public ChatModel(String messege, String user, int intType) {
this.messege = messege;
this.user = user;
this.intType = intType;
}


public String getMessege() {
return messege;
}

public void setMessege(String messege) {
this.messege = messege;
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}

public int getIntType() {
return intType;
}

public void setIntType(int intType) {
this.intType = intType;
}
}

这是我的 Activity 代码。

DatabaseReference messagesReference = reference1.child("messages/"+ UserDetails.username + "_" + UserDetails.chatWith);
Log.e("messages URL "," ==>"+messagesReference);

messagesReference .addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {

Log.e("messages Referencev "," ==>"+dataSnapshot.toString());

ChatModel map = dataSnapshot.getValue(ChatModel.class);
String message = map.getMessege();
String userName = map.getUser();

Log.e("message "," ==>"+message); // Here I am getting null value

}

@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) {

}
});

logcat显示这样的消息。
==>DataSnapshot { key = -KslrqBPRMNKkWQO15h_, value = {message=Hi 这是 sakib, user=sakib} }

最佳答案

您的键不匹配,这就是它返回 null 值的原因,请检查您的屏幕截图和 ChatModel 类,从 ChatModel 类变量中删除 str,然后再次生成 getter setter

这可能对您有帮助。

public class ChatModel {

private String messege;
private String user;
private int intType;
// TODO generate getter setter again
}

您也可以通过 map 获取值

Map<String,String> map=(Map<String,String>)dataSnapshot.getValue();
String message = map.get("message");
String userName = map.get("user");
Log.e("message "," ==>"+message);

关于Android Firebase DataSnapshot 类向自定义 java 对象返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45996729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com