首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防火墙数据库成本推送法还是反向数据树法?

防火墙数据库成本推送法还是反向数据树法?
EN

Stack Overflow用户
提问于 2018-10-08 20:03:36
回答 2查看 220关注 0票数 0

我使用push()方法为数据库创建唯一的id,但是当我使用push方法创建id时,它被添加到树的底部,但我希望它位于顶部。我怎么能这么做?

例如,在这张图片的底部,一个是最新的,我希望它在顶部。我怎么能这么做?

图片

我希望这样做,因为我将RecyclerView与Firebase适配器一起使用,适配器开始从顶部读取。

编辑:如何从底部到顶部从火场获取数据?

这个问题是我想要的,但没有有用的答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-09 09:23:39

我使用push()方法为数据库创建唯一的id,但是当我使用push方法创建id时,它被添加到树的底部,但我希望它位于顶部

当您使用push()方法时,Firebase控制台中的对象是按时间顺序排列的,不幸的是您无能为力。这个顺序不能改变。如果您想在RecyclerView中显示数据库中的项目,并且假设情况下,您可以更改控制台中的顺序,这并不意味着此顺序与RecyclerView中的顺序相同。若要按特定顺序显示项目,我建议您使用查询并根据时间戳属性对其进行排序。关于这一点,请参阅Frank从这个帖子中得到的答案,如果您正在使用Firebase-UI库,请参阅此帖子的答复。

票数 0
EN

Stack Overflow用户

发布于 2018-10-08 22:45:37

您可以编写一个简单的查询来获取数据,根据需要将日期参数添加到对象中,然后按日期查询数据。

代码语言:javascript
复制
 DatabaseReference reference = FirebaseDatabase.getInstance().getReference();

Query query = reference.child("data").orderByChild("date");
query.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()) {
            for (DataSnapshot child: dataSnapshot.getChildren()) {
                // fill recyclarView with data
            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52709347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档