Как получить первый элемент результата базы данных FIrebase в Python?

1

Я использую Firebase Admin SDK для Python для получения данных из базы данных Realtime, но все примеры, похоже, используют для циклов для более точной обработки данных.

from firebase_admin import db
ref = db.reference('users')
results = ref.order_by_child('name').equal_to(uniqueID).limit_to_first(1).get()
Теги:
firebase
firebase-admin
firebase-realtime-database

3 ответа

3
Лучший ответ

Тип, возвращаемый .get() кажется, всегда является OrderedDict даже когда limit_to_first(1) используется только для получения 1 результата. Используйте .popitem() чтобы получить первый элемент без использования цикла for.

from firebase_admin import db
ref = db.reference('users')
results = ref.order_by_child('name').equal_to(uniqueID).limit_to_first(1).get()
firstItem = results.popitem()
1

Поскольку ваши results могут иметь не более 1 пункта, следующие также будут работать довольно эффективно:

if results:
    key, val = results.items()[0]
1

@Jim ответ не ошибается, но popitem() удалит элемент из словаря results. Если вы хотите получить первый элемент, вы можете использовать это:

firstKey = next(iter(results.keys())) # Python 3.x
firstKey = results.iterkeys().next()  # Python 2.x

который вернет ключ для первого элемента. И вы можете получить значение, используя firstKey как это

value = results[firstKey]

Надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню