firebase - 当您使用 limitToFirst 或 limitToLast 时,Firebase 是否会加载所有项目?

标签 firebase firebase-realtime-database

例如,我有一个这样的数据库结构:

"chatMessages": {
    "chat1": {
      "m1": {
        "name": "eclarke",
        "message": "The relay seems to be malfunctioning.",
        "timestamp": 1459361875337
      },
      "m2": { ... },
      "m3": { ... }
    },
    "chat2": { ... },
    "chat3": { ... }
  }

现在,一些聊天有 1,000 条消息。当我使用 LimitToLast 检索最后 100 条消息时。 Firebase 是否会先加载所有 1,000 条消息,然后再向我发送我想要检索的 100 条消息,还是将加载限制为我真正需要的 100 条消息?我不确定,因为我读了很多关于保持数据库尽可能平坦的内容。

如果 Firebase 首先加载所有 1,000 条消息,我是否应该考虑以特定方式嵌套它?

我希望社区能够向我澄清事情!

最佳答案

这里有两种可能性:

  1. 查询有一个索引(隐式索引,或显式 defined by you ),数据在服务器上过滤。

  2. 查询没有索引,在这种情况下,将在客户端检索并排序/过滤该位置的所有数据。

关于firebase - 当您使用 limitToFirst 或 limitToLast 时,Firebase 是否会加载所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44608895/

相关文章:

ios - 错误消息 - 在 iOS 上 native 未找到 RNFirebase 核心模块

firebase - 通过 Firebase CDN 加载字体

javascript - 如何在 Javascript 代码中更改数据库值,但不允许用户在 Javascript 控制台中更改(或访问)数据库值?

database - Firebase Angular2 - 如何在没有太多开销的情况下查询和呈现列表

firebase - 在哪里可以查看和管理 FCM 中的主题

ios - 我可以将数据库模式从一个 firebase 项目克隆到另一个吗?

ios - 我的 Firebase 观察者不会停止观察

ios - 电子邮件注册方法的 .onCreate 触发器中未定义用户显示名称

javascript - 在 firebase 中按比例指定索引

Google Apps 脚本上的 Firebase 数据库 secret