热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

可以以相反的顺序遍历Firebase节点的子节点吗?-PossibletotraversethechildrenofaFirebasenodeinreverseorder?

Imlookingintoimplementinganin-firebaseindexasdescribedhere:https:stackoverflow.coma10

I'm looking into implementing an in-firebase index as described here: https://stackoverflow.com/a/10559689/534086, and trying to figure out how to deal with sorting data in descending order. Is it possible if you have a node with children 'a', 'b', 'c' to retrieve them 'c', 'b', 'a'? (while still being able to retrieve them in the original order as well?)

我正在考虑实现这里描述的in-firebase索引:https://stackoverflow.com/a/10559689/534086,并试图找出如何处理按降序排序数据。如果你有一个带有'a','b','c'的节点来检索它们'c','b','a',这是否可能? (虽然仍能按原始顺序检索它们?)

If it's not possible to traverse the node both forwards and backwards and I need to create two indexes, is their an easy algorithm for generating keys that sort in reverse lexographic order? For numbers, I think you can multiply by -1, but not sure how to handle strings...

如果无法向前和向后遍历节点并且我需要创建两个索引,那么它们是一种简单的算法,用于生成按反向词法顺序排序的密钥吗?对于数字,我认为你可以乘以-1,但不知道如何处理字符串...

2 个解决方案

#1


9  

It sounds like what you want is a "reverse()" query similar to how "limit()" works now. Firebase can't do this yet, but we're planning to add it.

听起来你想要的是一个类似于“limit()”现在如何工作的“reverse()”查询。 Firebase还不能这样做,但我们计划添加它。

Depending on your use case, it might be pretty simple for you to get around this though. If, for instance, you're using Firebase's sorting to keep a list in order that is being displayed to the user, you could simply modify the display logic to render things backward (prepend items instead of append for instance). If you're querying to select a window of data out of a large set of children (say, to get the first 10 items out of a long list), the sort order shouldn't be important -- your start and end points for the query will remain the same except they'll be reversed.

根据您的使用情况,您可能很容易解决这个问题。例如,如果您使用Firebase的排序按顺序保存列表,则可以简单地修改显示逻辑以向后渲染事物(例如,前置项而不是附加项)。如果您要查询从大量子项中选择一个数据窗口(例如,从长列表中获取前10个项目),排序顺序应该不重要 - 您的起点和终点查询将保持不变,但它们将被颠倒。

#2


0  

Can you use limitToLast() and sort the result set yourself? I know this kind of thing works if you happen to be using Angular, where items is a Firebase array object on the $scope;

你可以使用limitToLast()并自己对结果集进行排序吗?我知道如果您碰巧使用Angular,这种事情是有效的,其中items是$ scope上的Firebase数组对象;

  • {{ item.fildName }}

  • 推荐阅读
    • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
      本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
    • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
    • Java太阳系小游戏分析和源码详解
      本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
    • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
    • 开发笔记:加密&json&StringIO模块&BytesIO模块
      篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
    • Java容器中的compareto方法排序原理解析
      本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
    • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
    • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
    • MPLS VP恩 后门链路shamlink实验及配置步骤
      本文介绍了MPLS VP恩 后门链路shamlink的实验步骤及配置过程,包括拓扑、CE1、PE1、P1、P2、PE2和CE2的配置。详细讲解了shamlink实验的目的和操作步骤,帮助读者理解和实践该技术。 ... [详细]
    • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
    • Linux重启网络命令实例及关机和重启示例教程
      本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
    • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
    • Python字典推导式及循环列表生成字典方法
      本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
    • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
    • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
    author-avatar
    书友36110188
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有