java Android FIrebase查询填充下面的FirebaseListAdapter 2节点
*更新2-12/21-以下内容现在正努力返回我想要的节点。剩下的就是将以下每个节点中的POJO详细信息(5条记录)输入FirebaseListAdapter。请参阅本文底部的代码,messageText.setText(model.getSubscriberNickname());
返回null,因为POJO是另一个较低的节点
final DatabaseReference myRef = database.getReference().child("userposts").child("TEST");
Query query = myRef.orderByKey()
.startAt("1495522799000")
.endAt("1495954799000");
*更新1-12/21-当我使用以下引用时,我会在UI中为单个节点/键显示4个所需的POJO字段(“149595479000”)。但是,我希望在多个节点/关键点上得到相同的结果。因此,我希望使用startat/endat。我需要startat/endat语句语法方面的帮助
final DatabaseReference myRef = database.getReference().child("userposts").child("TEST").child("1495954799000");
我想用FirebaseListAdapter
。我有一个非常简单的FirebaseListAdapter
示例,在没有。startat/。endat和仅具有3个属性。我不知道怎么做,就是查询,跳下一个节点级别,把POJO
放在FirebaseListAdapter
中
我现在想用以下现有结构实现FirebaseListAdapter
。我有一个POJO
作为名为“Post”的模型,我省略了下面的POJO
细节(在最下面的节点下),因为POJO
有许多属性。“测试”级别有多个节点。在这个级别之下是毫秒级的日期,以每天最晚的一秒结束。下面是一个自定义键,下面是POJO
。每个自定义键(带有&;s)下只有1POJO/Model
我的代码的功能在于,它从Firebase
返回测试下面的键。由于POJO
尚未填充,因此UI
中的所有属性都为空。我要做的是过滤这些键,使其略低于测试(即带回过去4天),用&;在下一个较低级别,填充每个日期下的POJOs
,并在列表Adapter
中显示POJO
中的4个字段
(我现在还不在乎时间=“HH:mm:ss”。稍后会解决这个问题)
下面的屏幕截图显示了Firebase结构(黑色)和我想要检索的数据(红色)。最终,我希望在FirebaseListAdapter中表示POJO中的4个属性
以下是一些代码:
private FirebaseListAdapter<Post> adapter;
FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myRef = database.getReference().child("userposts")
ListView listOfMessages = (ListView)findViewById(R.id.list_of_messages);
myRef.child("TEST")
.startAt(1495522799000L)
.endAt(1500188399000L);
adapter = new FirebaseListAdapter<Post>(this, Post.class,
R.layout.message, myRef) {
@Override
protected void populateView(View v, Post model, int position) {
// Get references to the views of message.xml
TextView messageText = (TextView)v.findViewById(R.id.message_text);
TextView messageUser = (TextView)v.findViewById(R.id.message_user);
TextView messageTime = (TextView)v.findViewById(R.id.message_time);
TextView messageLeg = (TextView)v.findViewById(R.id.message_leg);
messageText.setText(model.getSubscriberNickname());
messageLeg.setText(model.getLegName());
messageTime.setText("HH:mm:ss");
messageUser.setText(model.getMessageText());
}
};
listOfMessages.setAdapter(adapter);
共 (0) 个答案