Jam*_*e22 4 java android firebase firebase-realtime-database
我希望将每个特定对象的dataSnapshot和key的引用传递给自定义的"Message"对象.
我已经尝试在Message.class中使用键'String key',但它似乎返回null.
这是我的Message对象当前的方式:
public class Message {
private String key;
private String sender_id;
private String sender_username;
private String receiver_username;
private String receiver_id;
private String chat_id;
private String message;
private Firebase ref;
private double createdAt;
private boolean read;
public Message() {
// empty default constructor, necessary for Firebase to be able to deserialize messages
}
public String getKey() { return key; }
public String getSender_id() { return sender_id; }
public String getSender_username() { return sender_username; }
public String getReceiver_username() { return receiver_username; }
public String getReceiver_id() { return receiver_id; }
public String getChat_id() { return chat_id; }
public String getMessage() { return message; }
public Firebase getRef() { return ref; }
public double getCreatedAt() { return createdAt; }
public boolean getRead() { return read; }
}
Run Code Online (Sandbox Code Playgroud)
任何想法,我如何正确地将dataSnapshot.getKey()字符串传递给自定义对象?我没有在Firebase文档中看到一个示例,并且在更新之前要清楚我正在使用"旧版Firebase".
当你Message从a 获得一个实例时DataSnapshot,你可能会这样做:
Message message = snapshot.getValue(Message.class)
Run Code Online (Sandbox Code Playgroud)
由于这是从开始getValue(),消息将不包含的密钥DataSnapshot.
您可以做的是在阅读以下内容后自行设置密钥Message:
Message message = snapshot.getValue(Message.class);
message.setKey(snapshot.getKey());
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您需要标记为getKey()as @JsonIgnore,以确保Jackson尝试自动填充或序列化它.
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |