Firebase limit_to_last (1) не работает должным образом - PullRequest
0 голосов
/ 08 июня 2018

У меня в базе данных есть данные, которые записывают температуру, как показано ниже: 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 голосов
/ 08 июня 2018

Когда вы используете цифровые клавиши (как и вы), Firebase может интерпретировать ваши данные как массив.Чтобы узнать больше об этом, прочитайте Рекомендации: массивы в Firebase .

Если приведение этого массива является проблемой для вашего приложения, я рекомендую ставить перед номером фиксированную строку, например "week_1 "или даже лучше "week_01 (так как, возможно, вы можете фильтровать по диапазонам недель).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...