按发布降序显示帖子

2024-02-21

我正在尝试测试 Firebase 以允许用户使用以下方式发表评论push。我想用以下内容显示我检索到的数据;

fbl.child('sell').limit(20).on("value", function(fbdata) { 
  // handle data display here
}

问题是数据按从最旧到最新的顺序返回 - 我希望按相反的顺序。 Firebase 可以做到这一点吗?


自编写此答案以来,Firebase 添加了一项功能,允许按任何子项或按值排序。因此,现在有四种方法可以对数据进行排序:按键、按值、按优先级或按任何指定子项的值。看到这个介绍新订购功能的博客文章 https://www.firebase.com/blog/2014-11-04-firebase-realtime-queries.html.

但基本方法保持不变:

1. 添加具有反转时间戳的子属性,然后对其进行排序。

2. 按升序读取子项,然后在客户端上反转它们。

Firebase 支持通过两种方式检索集合的子节点:

  • by name
  • 按优先级

您现在得到的是按名称排列的,这恰好是按时间顺序排列的。顺便说一句,这并非巧合:当你push将项目放入集合中时,会生成名称以确保子项按这种方式排序。引用Firebase 文档push https://www.firebase.com/docs/web/api/firebase/push.html:

Push() 生成的唯一名称以客户端生成的时间戳为前缀,以便结果列表将按时间顺序排序。

The Firebase 有序数据指南 https://www.firebase.com/docs/web/guide/retrieving-data.html#section-ordered-data关于这个话题有这样的说法:

数据如何排序

默认情况下,Firebase 节点中的子节点按名称按字典顺序排序。使用push()可以生成自然按时间顺序排序的子名称,但许多应用程序要求其数据以其他方式排序。 Firebase 允许开发人员通过为每个项目指定自定义优先级来指定列表中项目的顺序。

获得所需行为的最简单方法是在添加项目时指定始终递减的优先级:

var ref = new Firebase('https://your.firebaseio.com/sell');
var item = ref.push();
item.setWithPriority(yourObject, 0 - Date.now());

Update

您还必须以不同的方式检索子项:

fbl.child('sell').startAt().limitToLast(20).on('child_added', function(fbdata) {
  console.log(fbdata.exportVal());
})

在我的测试中使用on('child_added'确保最后添加的几个子项按时间倒序返回。使用on('value'另一方面,按名称顺序返回它们。

请务必阅读“读取有序数据”部分 https://www.firebase.com/docs/web/guide/retrieving-data.html#section-ordered-data,这解释了使用child_*检索(有序)子项的事件。

一个 bin 来演示这一点:http://jsbin.com/nonawe/3/watch?js,控制台 http://jsbin.com/nonawe/3/watch?js,console

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按发布降序显示帖子 的相关文章

随机推荐

  • Cron:每 1 秒运行一次 cron?

    如何让 cron 每 1 秒运行一次 默认只有分钟选项 让 cron 第一次开始这项工作 将程序置于无限循环中 每次循环结束时 sleep 1 秒 像这样 在C中 int main int argc char argv while 1 do
  • 如何在 Android 中启用 Google Chrome 的“扫描新卡”选项?

    Google Chrome 具有扫描信用卡以在付款期间填充字段的功能 该功能适用 于 Android Chrome 不适用于 Android 的所有版本和设备 我已附上屏幕截图 It shows on other websites but
  • 在 C++11 智能指针中存储 std::thread

    In C 11 多于有什么优点或缺点当存储一个std thread直接作为班级成员 如下所示 std thread my thread 与存储相反std shared ptr or std unique ptr像这样的线程 std shar
  • 如何从 Google 版本地图中拖动的标记获取格式化地址

    我制作了一个谷歌地图 可以让你在文本字段中输入地址 然后 它会将您导航到您在文本字段中输入的地址 并留下一个可拖动的标记 拖动时会显示纬度和经度以及地理位置地址 我不想显示上述地址 而是希望当您拖动标记时在底角显示标记的地址 而不是从文本字
  • 纯 CSS 中基于复选框隐藏表格行

    对于那些关心的人来说 有一些背景故事 不久前我偶然发现了这个 https medium com front end hacking how it feels to learn javascript in 2017 a934b801fbe h
  • Windows 上的 Python str 与 unicode,Python 2.7,为什么 'á' 变成 '\xa0'

    背景 我使用的是 Windows 机器 我知道不再支持 Python 2 但我仍在学习 Python 2 7 16 我还有Python 3 7 1 我知道Python 3 unicode被重命名为str https stackoverflo
  • EntityManagerFactory 已关闭,Hibernate

    我最近创建了一个 Web 服务 它使用 Java 中的静态方法从数据库中获取项目列表 Web 服务运行良好 并将 JSON 返回给调用者 然而 它只能工作一次 如果您尝试刷新或提出新请求 我会收到一个EntityManagerFactory
  • J:牛顿法的隐性副词

    我发现在 addons math misc brent ijs 布伦特方法作为副词的实现 我也想构建牛顿法作为副词 但这比构建默认动词要困难得多 这是牛顿迭代的显式版本 newton i 1 u u d 1 有了这样的用法 2 o newt
  • 在哪里可以找到 javascript 本机函数源代码? [复制]

    这个问题在这里已经有答案了 哪里可以找到原生js函数的源码 比如我想看一下eval 功能 Chrome 和 Firefox 都是开源的 您可以在这些产品的源代码中查看 javascript 引擎任何部分的实现 其他浏览器有自己的实现 例如
  • Android 上的 Cordova 全屏黑条

    我的 android cordova 应用程序在屏幕顶部和底部出现黑色水平条 我尝试将全屏插件和标签添加到 config xml 但它不会消失 https i stack imgur com esFEL png https i stack
  • 从 mongodb 结果 java 中删除 _id

    我的代码是 DBCollection collection db getCollection volume DBCursor cursor collection find DBObject resultElement cursor next
  • Oracle 数据库查询在第二次运行时抛出错误

    我有一个 VBA 代码 我在其中调用 oracle 使用 ODBC 检索数据两次 第一次数据检索没问题 但第二次却说 RunTime Error 2147467259 80004005 Unspecified error 我的代码如下 注意
  • 如何禁用 NSDocument 的窗口标题弹出窗口

    我有一个基于 NSDocument 的应用程序 启用了自动保存 I d like to prevent this popup from showing 我尝试从 NSWindow 的 title representedFilename 和
  • 如何在访问 laravel 环境和类时在命令行上运行 php 脚本

    我在 Web 服务器上有一个 laravel 3 环境 但我想在命令行上运行 php 脚本 我想访问 laravel 环境中的任何 php 脚本 例如控制器 模型或视图文件 访问的相同类和方法 我怎样才能做到这一点 我强烈建议您将 PHP
  • Python - SQLite JSON1 加载扩展

    我想在 Python 中使用 SQLite 的 json1 扩展 根据官方文档 http sqlite org json1 html 它应该是一个可加载的扩展 我从以下位置获取了 json1 c 文件source http sqlite o
  • 在Python中解压文件

    我通读了zipfile文档 https docs python org 3 library zipfile html 但不明白如何unzip一个文件 仅介绍如何压缩文件 如何将 zip 文件的所有内容解压缩到同一目录中 import zip
  • Haskell:在更新函数中引用先前更新的列表元素

    假设我有以下定义 data Book Book id Int title String type Shelf Book 假设我有一个假设的功能 upd用于更新 updShelf Shelf gt Shelf updShelf all boo
  • OSGI环境中单例的迁移解决方案

    我正在 Java EE 环境中工作 其中每个应用程序都位于其自己的 war 文件中 在每个应用程序 war 文件的 WEB INF lib 中 有一个由所有应用程序共享的公共 jar 这个公共 jar 包含几个可以从代码中的许多点访问的单例
  • 从 HashMap 获取值时为什么需要双 & 符号?

    我在 Rust 中的引用方面遇到了一些麻烦 我有以下无法编译的代码 use std collections HashMap fn main let mut map HashMap new map insert 0 0 map insert
  • 按发布降序显示帖子

    我正在尝试测试 Firebase 以允许用户使用以下方式发表评论push 我想用以下内容显示我检索到的数据 fbl child sell limit 20 on value function fbdata handle data displ