按确定事件的日期排序,(不是Firebase创建的时间戳,我使用的节点)

时间:2017-11-30 19:40:28

标签: android firebase-realtime-database android-recyclerview

所以,我制作了一个应用程序来列出正在运行的事件,它有2个标签,1个显示将要发生的事件,按日期排序,顶部接近当前日期,另一个显示最近发生的事件,我也订购了当前日期附近的那些。我有Tabs准备,登录,loggout,回收者视图。接近我需要的所有内容,但我无法想到一种获取Firebase数据库和从Firebase数据库读取数据的方法。经过几次尝试后,我想按日期对节点进行排序,采用以下格式:

node RunEvent
      node 20171202
            node nameEvent
                   other atribs
            node nameEvent2
                   other atrib
      node 20171207
            node nameEvent3
                   other atribs

我的问题是:

- 我如何列出我的活动,我尝试了几个听众,但没有运气(或技能,我从开始开始)。 我回家后会添加代码。

1 个答案:

答案 0 :(得分:0)

假设您的数据库看起来与此类似:

Firebase-root
   |
   --- RunEvent
         |
         --- 20171202
         |      |
         |      --- nameEvent: "First Event"
         |
         --- 20171207
                |
                --- nameEvent: "Second Event"

请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference runEventRef = rootRef.child("RunEvent");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String nameEvent = ds.child("nameEvent").getValue(String.class);
            Log.d("TAG", nameEvent);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
runEventRef.addListenerForSingleValueEvent(eventListener);

您的输出将是:

First Event
Second Event