Ожидание JSON от firebase, но получение списка - PullRequest
2 голосов
/ 10 июля 2020

Я использую библиотеку python -firebase для доступа к базе данных firebase в реальном времени. Структура базы данных изображена в на этом изображении. Когда я обращаюсь к узлу «PatientMaster» с помощью python, я получаю список JSON без идентификаторов вместо правильного ключа JSON -значение формата. Может ли кто-нибудь помочь мне с этим? Код, который я написал для выполнения вышеизложенного, выглядит так:

firebase = firebase.FirebaseApplication('https://************.firebaseio.com', None)
result = firebase.get("/PatientMaster",None)

Переменная «результат» дает мне результат в виде списка JSON без идентификаторов.

1 Ответ

1 голос
/ 10 июля 2020

Проблема в том, что вы используете последовательные цифровые c ключи для записей в узле «PatientMaster», и их содержимое очень похоже. Firebase RTDB интерпретирует (иногда) эту структуру как массив списков, а не как массив карт. Причина в том, что когда вы отправляете массив списка в FB RTDB, он сохраняет его как карту (json) с ключами 0-n и элементами списка в качестве значений. Когда вы читаете db и видите эту структуру, он думает, что это сохраненный массив списков, и возвращает его вместо карты (json). См. Это сообщение: https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html?m=1

Вам нужно сделать ваши ключи более сложными или проверить / ожидать, что данные, возвращаемые с этого узла, будут массивом списка.

...