当前位置: 首页 > 知识库问答 >
问题:

Firebase实时数据库数据获取顺序的保证

阳狐若
2023-03-14

如果我使用get(),是否总是100%保证我将获得的数据是从最早到最新的排序,或者键是按照词典的顺序排列的?

共有1个答案

刘昌翰
2023-03-14

当我不使用任何orderBy方法从Firebase实时数据库中获取数据时,数据的顺序是什么?

如果即使不使用对orderby()的调用,也希望对元素进行排序,那么应该使用databaseReference#push()方法提供的推送ID。这些推送的ID实际上不是时间戳,但它们包含时间组件。正如Michael Lehenbauer在这篇博客文章中提到的:

Push ID是在客户端生成的字符串标识符。它们是一个时间戳和一些随机比特的组合。时间戳确保它们按时间顺序排列,随机比特确保每个ID是唯一的,即使成千上万的人同时创建推送ID。

添加ValueEventListener或ChildEventListener,或者调用query#get(),结果的顺序都是一样的。

但是,如果您需要根据时间组件显式地拥有一个订单,那么您应该添加一个类型为“timestamp”的属性,正如我在下面的文章中的回答中所解释的那样:

  • 向Firebase实时数据库添加新值时如何保存当前日期/时间
    null
 类似资料:
  • 问题内容: 我正在使用Firebase,直到最近我都没有按字母顺序获取数据的问题。我从来没有使用过查询,我总是只使用数据快照并逐一对其进行排序。最近,在 snapVal中 ,数据并不总是按字母顺序 排列 。如何做到这一点,以便获得按字母顺序排序的数据的snapVal,就像数据库快照中的快照一样? 真实示例:有4条消息,id1-id4(按此顺序)。它们包含消息“ 1”-“ 4”。快照看起来正确。但是

  • 我正在尝试获取我的用户名,并在应用程序打开时向他/她问好。但我无法根据某个用户的uid获取数据。当我运行应用程序时,祝酒词从未真正出现。 数据库结构 密码

  • 我正在寻找一种方法,以数组[]或字符串等格式从Firebase实时数据库获取数据。 我的数据库如下所示:链接到数据库的图像 或者:

  • 我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(

  • 我从一个开发人员那里得到了一个基于Firabase Realtime DB的Ionic应用程序的代码。当尝试启动应用程序时,im会收到此错误消息。 [ng]src/app/data-service.service.ts(14,36)中出现错误:错误TS2339:类型“{apikey:String;authDomain:String;databaseUrl:String;ProjectId:Stri

  • 我无法在/users/{uname}/token上获取令牌- 错误:提供给sendToDevice()的注册令牌必须是非空字符串或非空数组。在FirebaseMessagingeror。FirebaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/error.js:42:28)位于FirebaseMessagingError。在新