Облачные функции Firestore для Python не запускаются - PullRequest
0 голосов
/ 14 июня 2019

Я могу использовать firebase firestore python admin sdk, и он отлично реагирует на изменения в firestore db по сравнению с тем же документом, который я использую для кода функций.

Для облачных функций я использую онлайн-редактор для создания и развертывания функции.

Когда я добираюсь до варианта тестирования, я не могу найти никакой информации относительно того, каким должен быть формат данных json. Что бы я ни ввел, я получаю сообщение, что текст json не может быть проанализирован.

Если я оставлю параметры json незаполненными и включу опцию test, я получу обратную трассировку, поскольку ни одна из переменных не определена для используемых данных. Параметр данных пуст. Но функция запускается из опции теста.

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

Я использую один из простых примеров, которые они предоставляют, чтобы провести некоторое тестирование. Он пытается извлечь oldValue и значение из параметра данных.

import json
def hello_write(data, context):
    """ Triggered by a change to a Firestore document.
    Args:
        data (dict): The event payload.
        context (google.cloud.functions.Context): Metadata for the event.
    """
    trigger_resource = context.resource

    print('Function triggered by change to: %s' % trigger_resource)
    print('GOT DATA', data)

    print('\nOld value:')
    try:
        print(json.dumps(data["oldValue"]))
    except Exception as e:
        print('GOT OLD ERROR', str(e))

    print('\nNew value:')
    try:
        print(json.dumps(data["value"]))
    except Exception as e:
        print('GOT ERROR ON NEW', str(e))

Контекст хороший, так как я распечатываю его, и он ссылается на правильный документ.

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

Так что я застрял, не зная, что еще делать.

Мне хотелось бы знать одну вещь: что я могу указать в параметрах теста json и в каком формате должен принимать json. Я не могу найти информацию об этом.

Но независимо от этого, насколько я вижу, функция должна как минимум срабатывать при внесении изменений в документ из консоли.

Это, конечно, происходит, когда я использую Python Admin SDK. Всякий раз, когда я делаю изменения в документе, я получаю триггер в программе.

Полагаю, я пропустил какой-то шаг. Если у кого-то есть идеи, это было бы очень полезно.

...