Я использую 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()
Тип, возвращаемый .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()
Поскольку ваши results
могут иметь не более 1 пункта, следующие также будут работать довольно эффективно:
if results:
key, val = results.items()[0]
@Jim ответ не ошибается, но popitem()
удалит элемент из словаря results
. Если вы хотите получить первый элемент, вы можете использовать это:
firstKey = next(iter(results.keys())) # Python 3.x
firstKey = results.iterkeys().next() # Python 2.x
который вернет ключ для первого элемента. И вы можете получить значение, используя firstKey
как это
value = results[firstKey]
Надеюсь, это поможет!