Присвойте постоянное значение переменной python, которая называется серверной функцией firestore.SERVER.TIMESTAMP - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь присвоить одну и ту же метку времени нескольким полям в Firestore. Я использую python 3.7

Мой код для создания метки времени:

current_system_timestamp    = firestore.SERVER_TIMESTAMP

Я использую current_system_timestamp для обновления полей в Firestore. Вот так.

   channel_id_doc_ref.set({
                    'timestamp'  : current_system_timestamp,
                    'initiator_name'       : user_name
                })

 notes_doc_ref.set({
            'note'         : chat_note
            'timestamp_entered'     : current_system_timestamp
        })

К сожалению, два значения меток времени после их установки в Firestore отличаются - на миллисекунды. Это приводит меня к мысли, что мне нужно объявить current_system_timestamp как константу в python. Как мне это сделать?

1 Ответ

0 голосов
/ 15 января 2020

firestore.SERVER_TIMESTAMP получает окончательное значение на серверах Firestore после отправки запроса. Значение не известно клиенту на момент написания документа. Так как ваш клиентский код пишет два разных документа в два разных времени, вы можете ожидать, что окончательные метки времени будут разными, поскольку они не будут одновременно попадать на сервер в один и тот же момент времени.

Назначение firestore.SERVER_TIMESTAMP ничего не изменит. Если вам требуется, чтобы два документа имели одинаковую временную метку, вам придется написать специальный код для этого. Вместо этого вы можете написать первый документ, затем сразу же прочитать его обратно, получить из него окончательную временную метку и использовать ее в качестве поля временной метки в будущих документах.

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