- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从 Firebase 实时数据库检索的 content
节点。我利用 .orderByChild("time")
获取按最早时间戳排序的前 5 个博客对象的数据快照。我
我目前正在尝试使用 .indexOn : "time"
来代替,这样我就不必像我期望的那样使用 .orderByChild("time")
博客对象在检索时已由后端按时间戳排序。 (我将处理大量博客对象,因此我想在后端使用 .indexOn : "time"
而不是 orderByChild("time")
在前端以提高效率)。目前,.indexOn
不起作用,并且检索数据时不会按时间字段排序。
不使用.indexOn
的查询
// this works fine
// startAt is utilized for saving last blog object retrieved to retrieve more data
query =
FirebaseDatabase.getInstance().getReference()
.child("content")
.orderByChild("time")
.startAt(nodeId)
.limitToFirst(5);
使用.indexOn查询
// this along with the Firebase rules below does not return the same result as above
// startAt is utilized for saving last blog object retrieved to retrieve more data
query =
FirebaseDatabase.getInstance().getReference()
.child("content")
.startAt(nodeId)
.limitToFirst(5);
Firebase 规则:
{
"rules": {
".read": true,
".write": true,
"content" : {
".indexOn": "time"
}
}
}
Firebase 中数据的 JSON 结构:
"content" : {
"blog-0001" : {
"content_id" : "blog-0001",
"image" : "someimage",
"time" : 13,
"title" : "title1",
"type" : "blog"
},
"blog-0002" : {
"content_id" : "blog-0002",
"image" : "someimage",
"time" : 12,
"title" : "title2",
"type" : "blog"
},
"blog-0003" : {
"content_id" : "blog-0003",
"image" : "someimage",
"time" : 11,
"title" : "title3",
"type" : "blog"
},
"blog-0004" : {
"content_id" : "blog-0004",
"image" : "someimage",
"time" : 15,
"title" : "title4",
"type" : "blog"
}
...
}
最佳答案
您似乎误解了 .indexOn
的作用,以及它与 orderByChild("time")
的关系。
要从按时间
排序(也可能按时间过滤)的内容
中检索子节点,您始终需要调用orderByChild("time")
.
如果您定义索引(使用".indexOn": "time"
),则排序和过滤将在服务器上完成。
如果没有索引,content
下的所有数据都将下载到客户端,并且排序/过滤将在客户端执行。
因此,.indexOn
不能替代 orderByChild
。相反,两者携手合作来执行有效的数据排序和过滤。
关于java - Firebase .indexOn 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56727546/
我收到 Firebase 警告“使用未指定的索引。请考虑在/user/544dceb6-98d-4f7e/clients 添加 ".indexOn": "E-mail"。 我添加的规则是: { "
我的数据设置如下: Tasks:{ Group 1:{ pushid1:{ date: 18921949021, title: "Do something"
您在下面看到的当前查询效率不高,因为我没有设置正确的索引。我在 Xcode 的控制台中收到建议 Consider adding ".indexOn": "users/kxSWLGDxpYgNQNFd3
您在下面看到的当前查询效率不高,因为我没有设置正确的索引。我在 Xcode 的控制台中收到建议 Consider adding ".indexOn": "users/kxSWLGDxpYgNQNFd3
我有一个大约有 7 - 8k 用户的数据库,每次我执行 getChildrenCount() 来计算我的应用程序中有多少人时,我真的需要等待很长时间才能处理并到来上。 我想知道是否有一种方法可以在我的
我尝试使用 Firebase (2.2.5) API/.orderByChild('score') 操作,并且我不断得到 No index defined for score 尽管 Firebase
所以我有这样的数据: pushNotifications { -K - RwEgd541PIGNOXXUH: { message: "Xiaoyu Hugh Hou bid a
我有一个从 Firebase 实时数据库检索的 content 节点。我利用 .orderByChild("time") 获取按最早时间戳排序的前 5 个博客对象的数据快照。我 我目前正在尝试使用 .
我对 firebase 的索引有一些疑问。这是我的 Firebase 结构: merchants { merchantID1 : { merchantName :
我正在使用以下查询创建条目 var newMessageRef = friendlyChat.database.ref().child('dinos').push() newMessageRef.se
Firebase 结构: { "config" : [ { "config1" : { "hideimage" : true } },
我在 stackoverflow 上搜索了很多并阅读了很多问题我有 3 个 indexOn 问题,其中 2 个已解决,1 个仍然存在我正在对数据库进行排序,并在成功运行的“Collection 夹”和
我在 swift 中使用 firebase 从 firebase 实时数据库中读取一些数据。当我在 firebase 面板中有一个项目时它工作正常,但今天添加另一个项目后我得到了这样的错误 2017-
我想弄清楚如何从 iOS 应用程序使用 Geofire。但是我在规则定义方面失败了。 这就是我的数据集的样子: offers:{ user1:{ name : "Steph",
我正在尝试使用 firebase 查询获取情绪等于 M1 的所有帖子,如下所示: db.ref(`Recommendations`).orderByChild(`post/vote/moodTags/
我有一个名为 search2 的集合,其中包含大约 20000 个这样的文档: { "loc": { "type": "Polygon", "c
我有一个带有索引的集合: { "UserId" : 1, "ShareId" : 1, "ParentId" : 1, "DeletedDate" : 1 } 如果我进
我在 xcode 中遇到这个错误: 使用未指定的索引。考虑将/groups 处的 ".indexOn": "members/rsenov"添加到您的安全规则中以获得更好的性能 这是我的 JSON 数据
我已经开始测试 Firebase,但我无法弄清楚关于索引的一件事。我正在根据阅读的内容创建一个结构 - Firebase Data Structuring - 类似于用户和组的示例。 JSON 树看起
我有一堆要使用 .indexOn 建立索引的键 假设我的数据如下所示。我希望能够使用 .orderByChild("height") . { "lambeosaurus": { "stat
我是一名优秀的程序员,十分优秀!