- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 android 上排序列表时遇到问题。数据库 ref items/如下所示:
{
"11" : {
"date" : "2018-11-18 10:07:00",
"letter" : "F",
"number" : 11
},
"12" : {
"date" : "2018-11-01 14:41:00",
"letter" : "B",
"number" : 12
},
"13" : {
"date" : "2018-11-13 14:00:00",
"letter" : "C",
"number" : 13
},
"14" : {
"date" : "2019-04-22 22:15:30",
"letter" : "D",
"number" : 14
},
"15" : {
"date" : "2019-04-22 20:33:00",
"letter" : "H",
"number" : 15
},
"16" : {
"date" : "2019-04-22 19:30:00",
"letter" : "J",
"number" : 16
},
"17" : {
"date" : "2019-04-25 13:10:00",
"letter" : "G",
"number" : 17
},
"18" : {
"date" : "2019-04-25 18:00:00",
"letter" : "E",
"number" : 18
},
"19" : {
"date" : "2019-04-25 13:00:00",
"letter" : "I",
"number" : 19
},
"20" : {
"date" : "2019-04-28 12:30:00",
"letter" : "A",
"number" : 20
}
}
我正在如下查询它,希望结果按“字母”键排序:
firebase.database().ref('items/').orderByChild('letter').on('value', snapshot => {
let items = snapshot.val()
Object.values(items).map(i => console.log(i.number, i.letter, i.date))
})
但我得到的结果记录如下:
11 F 2018-11-18 10:07:00
12 B 2018-11-01 14:41:00
13 C 2018-11-13 14:00:00
14 D 2019-04-22 22:15:30
15 H 2019-04-22 20:33:00
16 J 2019-04-22 19:30:00
17 G 2019-04-25 13:10:00
18 E 2019-04-25 18:00:00
19 I 2019-04-25 13:00:00
20 A 2019-04-28 12:30:00
显然没有应用 orderByChild('letter')。我可能缺少什么?
最佳答案
显然在 JavaScript 中处理对象的方式存在问题,这就是为什么有一个 snapshot.forEach 方法供人们使用,而不是我正在使用的 Object.values(items).map。我的听众应该看起来像这样:
firebase.database().ref('items/').orderByChild('letter').on('value', snapshot => {
snapshot.forEach(c => { i = c.val(); console.log(i.number, i.letter, i.date) })
})
Because of the way JavaScript objects work, the ordering of data in the JavaScript object returned by val() is not guaranteed to match the ordering on the server nor the ordering of child_added events. That is where forEach() comes in handy. It guarantees the children of a DataSnapshot will be iterated in their query order.
https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot#forEach
关于javascript - React Native 上的 Firebase orderByChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058736/
我正在尝试根据 documentation example 使用 Firebase orderByChild() 函数,但查询未返回过滤或排序。 这是示例数据结构: "notifications":
当子属性具有名称时,Firebase orderByChild() 效果很好,因此对于如下数据: groups groupStatus: "Active" 通过以下方式可以轻
我的 Firebase 架构如下所示, 我正在尝试获取general中的数据并按numberOfLikes属性对它们进行排序。根据我对 orderByChild 的理解,以下代码应该可以工作。 var
您好,我正在使用 ionic 和 firebase 构建一个应用程序,这是我的 firebase 模型: { "users" : { "D972XU" : { "8b91cc5
我正在尝试查询我的数据库以获取子编号> 7的所有日期 this.extra = function() { refer = ref.child(slot); refer.orderByC
我正在尝试使用 orderByChild 对快照进行排序,但这不起作用。 Firebase 规则: "rules": { "community": { "users": { "
我想在时间戳上使用 orderByChild。 但效果并不好。它们甚至按升序或降序排序。 这是结果: 第一:1581952308253 第二位:1581671445437 最后:15832546051
我正在尝试从“通知”子项获取通知计数。还有另一个 child 有一个随 secret 钥(我不知道),其中有一个 userKey 值。 我想使用 orderByChild("userKey") 并获取
这个问题在这里已经有了答案: Firebase query ordering not working properly (2 个答案) 关闭 4 年前。 我的示例数据 代码 let us
我有以下单子(monad)数据结构,想通过子属性 rating 检索订单列表: 示例数据结构 players: { 360368: { name: "Joe, Blogs",
我在使用 orderByChild().equalTo() 方法检索和删除 Firebase 数据库中节点的正确级别时遇到问题。 在网上搜索了好久,并没有真正解决我的问题。请帮忙。 我的数据库结构:
我目前正在使用 Firebase 编写 Android 应用程序。我有一个具有城市属性的产品模型。我正在运行以下查询: mDatabaseReference = FirebaseDatabase.ge
我正在使用 FirebaseRecyclerAdapter 来显示字符串列表。我的查询使用 orderByChild。结果首先用大写字母排序,如下所示: 项目 1、项目 2、项目 3、aItem、bI
我有两种方式对数据库表进行排序。 第一个是按日期(在我的情况下是创建),第二个是按得分。 所以我有一个下拉菜单,用户可以在其中指定他们想要排序的依据,并且我有一个调用正确数据库引用的函数。 goTo
使用 Firebase JS 库。尝试访问 firebase 查询结果中的值但没有成功: var ref = firebase.database().ref(`/listUser/${userId
当动态键位于实际引用和数据之间时,按子项(名称)排序不起作用。 这是我的代码: firebase.database().ref('/usersProfile').orderByChild('name'
我正在使用 FirebaseRecyclerAdapter 来显示字符串列表。我的查询使用 orderByChild。结果首先按大写字母排序,如下所示: 项目 1、项目 2、项目 3、aItem、bI
我尝试按子值“月”对数据库进行排序,但 orderByChild 不起作用。当我使用 onChildEventListener 而不是 addListenerForSingleValueEvent 时
我正在创建一个电话目录应用程序,我想在不同的 Activity 中显示不同的类别数据。我想帮助人们在不同类别中轻松找到他们的信息它向我显示了数据库中的所有数据。但我不想只显示“救护车联系人”类别数据。
我正在使用 FirebaseRecyclerAdapter。 我有许多带有子“maxValue”的节点。假设我有五个节点,列出的每个节点的最大值分别为 34、210、90、315、74。 我期望 .o
我是一名优秀的程序员,十分优秀!