Как вы можете подтвердить сообщение PubSub в Firebase Cloud Functions?

Я хотел бы знать, как правильно подтвердить сообщение PubSub (от push-подписчика), которое является облачной функцией Firebase. Это делается путем возврата обещания?

import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'

export const listener = functions.pubsub.topic('new_members').onPublish(async (message:any) => {

let data = {
  name: 'Los Angeles',
  state: 'CA',
  country: 'USA'
};

// Will a PubSub message be acknowledged just by retuning a promise?
return await db.collection('cities').doc('LA').set(data);
}

Спасибо за вашу помощь.


person Milton    schedule 18.01.2020    source источник
comment
Почему вы спрашиваете, это работает? Вот соответствующие документы: firebase.google.com/docs/functions/pubsub-events   -  person Zydnar    schedule 18.01.2020


Ответы (2)


Если ваша функция завершается успешно, возвращая разрешенное обещание, сообщения будут подтверждены ACK. Если функция выдает исключение или возвращает отклоненное обещание, то pubsub повторит отправку сообщения.

person Doug Stevenson    schedule 18.01.2020
comment
@ Дуг-Стивенсон, это все еще действительно для функций Firebase? Я не вижу попыток повторной доставки сообщений, когда functions.pubsub.topic..onPublish возвращает отклоненное обещание - person Michael Sotnikov; 16.04.2020
comment
Можете ли вы поделиться ссылкой на какую-либо документацию или процитировать внешний источник? Потому что это не похоже на правду. - person seza443; 14.08.2020
comment
Чтобы быть более конкретным, часть повторной попытки кажется неправильной. - person seza443; 14.08.2020
comment
@seza443 В документации указано Примечание. Облачные функции подтверждают сообщение внутренним образом после успешного выполнения функции. призыв. Сведения о том, как обрабатывать сбои с помощью повторных попыток, см. в разделе Повторные попытки фоновых функций. - person Doug Stevenson; 14.08.2020

Примечание. Cloud Functions автоматически подтверждает сообщение Pub/Sub после успешного вызова функции. Когда повторные попытки включены, облачные функции могут повторно вызывать функцию, в которой произошел сбой во время выполнения, с помощью того же сообщения Pub/Sub.

https://cloud.google.com/functions/docs/calling/pubsub#functions_calling_pubsub-java

person justCurious    schedule 09.02.2021