按发布降序显示帖子

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(使用前将#替换为@)

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

  • ReferenceError:找不到变量:需要

    我在加载时遇到问题node modules到我的网页之一 我已经安装了 npm node js 并且我想使用require 函数在我的网站上初始化 Firebase 我不知道为什么 但它抛出引用错误 ReferenceError 找不到变量
  • Twisted 的 Deferred 和 JavaScript 中的 Promise 一样吗?

    我开始在一个需要异步编程的项目中使用 Twisted 并且文档非常好 所以我的问题是 Twisted 中的 Deferred 与 Javascript 中的 Promise 相同吗 如果不是 有什么区别 你的问题的答案是Yes and No
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • Flask wtf.quick_form 运行一些 javascript 并设置表单变量

    我正在创建博客文章 到目前为止已经使用普通的 html 表单完成了 我所做的一个有趣的想法是运行 javascript onclick 并使用页面中的额外数据在表单中设置一个隐藏变量 这很好地传递到服务器并通过 request form 获
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 响应式网格布局框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 d3 js 中突出显示从根到选定节点的路径?

    我使用 d3 js 创建了一棵树 现在我创建了一个下拉菜单 其中包含树中所有节点的列表 现在 从下拉菜单中选择一个节点时 我想突出显示从根到该特定节点的路径 这个怎么做 首先创建一个 flatten 函数 它将分层数据变成一个 n 数组 f
  • Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?

    我主要了解 Ember JS 的基础知识 大多数示例实际上只处理单个控制器和模型以在页面上显示某些内容 我真的很想用 Ember 构建一个完整的 Web 应用程序 所以有人能告诉我如何组织和连接多个控制器 模型和视图到一个页面中吗 例如 如
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快

    该页面的作者 http 24ways org 2011 your jquery now with less suck http 24ways org 2011 your jquery now with less suck断言 jQuery
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 如何从顺序键盘导航中删除 Vuetify 附加图标

    在带有 Vuetify 的 Vue js 应用程序中 我有一组用v text field并且其中有一个append icon为了切换文本可见性 如下所示
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • Keycloak javascript 适配器 `keycloak.init` 加载 404 iframe

    我正在尝试使用 javascript 适配器将 Keycloak 集成到我的客户端应用程序keycloak js 但是 我似乎无法让它发挥作用 这是我的代码 const keycloak new Keycloak realm my real
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • Restangular - _.contains() 不是一个函数

    如果您最近通过 Bower 更新了 Restangular 它将安装最新的 Lodash 新的 4 0 然而 这是一个问题 因为 Restangular Angular 现在会抛出错误 contains 不是函数 你怎么解决 解决方案非常简

随机推荐

  • 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