Как не дать секунде при l oop замедлить возврат данных из сервиса - PullRequest
0 голосов
/ 19 января 2020

Я использую Firestore для получения данных в моем приложении django.

Поток запросов работает очень хорошо.

Я пытаюсь выполнить некоторый запрос отношения, получить автора сообщения от другая таблица.

Я не уверен, что это так, как это делается с django.

Вот код, который у меня есть:

# Get Updates Method
def get_updates():
    # Get Updates From Firestore
    user_ref = firestore_client.collection('post')
    query = user_ref.where('status', '==', 'online').order_by('updatedAt', direction=firestore.Query.DESCENDING)

    # Updates Lists
    updates = []

    # For Loop to get stream into list and change date strings to django friendly
    for doc in query.stream():
        updates.append(doc.to_dict())
        for update in updates:
             # Get Update Author
             author_ref = firestore_client.collection('users').document(update['uid'])
             author = author_ref.get()
             if author.exists:
                update['name'] = author.get('displayName')
                update['avatar'] = author.get('photoURL')
             update['createdAt'] = datetime.strptime(doc.get('createdAt'), '%Y-%m-%d %H:%M:%S')
             update['updatedAt'] = datetime.strptime(doc.get('updatedAt'), '%Y-%m-%d %H:%M:%S')

Второй для l oop увеличивает время загрузки. Страница загружается, и я получаю желаемый результат, но слишком медленно. Каков был бы эффективный способ сделать это?

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