java如何在Android文本视图中显示来自Firebase的消息列表?
我在Firebase中有一个非常简单的数组,如下所示:
我希望能够在textview中显示这些消息,并在数组中添加新消息时添加到textview。显示消息的代码如下所示:
myFirebaseRef.child("messages").child("message").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
GenericTypeIndicator<List<String>> t = new GenericTypeIndicator<List<String>>() {};
List<String> messages = snapshot.getValue(t);
if( messages == null ) {
System.out.println("No Messages");
}
else {
for(int i = 0; i < messages.size(); i++) {
messageDisplay.setText(messageDisplay.getText() + "\n" + messages.get(i) + "\n");
}
}
}
这没有按预期工作,我在GenericTypeIndicator上遇到“无法跳转到类型”异常。知道我哪里出错了吗
# 1 楼答案
在你看来像是一个数组,在Firebase看来像是一个关联数组。这种差异很微妙,但很重要,因为这意味着无法将JSON反序列化为
List<String>
。相反,if应该是一个Map<String,String>
但以下方法更简单、更好: