Firebase limit_to_last(1)无法按预期工作

时间:2018-06-08 19:07:16

标签: python-3.x firebase firebase-realtime-database

我在firebase中有数据记录温度,如下所示: enter image description here

我最终会有几周时间,密钥从1开始,下周密钥将为2然后3等等 我想写一个查询,它给我上周的数据(具有最高编号键的那一周)

我在python脚本中有这行代码:

rtn = root.child('bedroom').child('weeks').order_by_key().limit_to_last(1).get()
print(rtn)

这是打印出来的:

[None, {'date_time': '2018-06-08 19:38:41.634010', 'temperature': '21'}]

为什么None位于数组的开头?我认为它总是在这里吗?我想在数组的第二个位置使用数据。但如果它不总是在数组的第二个位置,那么我的代码就会破坏。我认为该查询将返回一个大小为1的数组。 我想当我测试时,我确实看到数组只有1个元素,json结构作为第一个元素,但我无法证实这一点。

1 个答案:

答案 0 :(得分:0)

当您使用数字键时(与此类似),Firebase可能会将您的数据解释为数组。要了解有关详情,请阅读Best Practices: Arrays in Firebase

如果此数组强制对您的应用有疑问,我建议在数字前加上固定字符串,例如: "week_1"甚至更好"week_01(因为那样你可以过滤几周的范围)。