有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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个属性

enter image description here

以下是一些代码:

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) 个答案