Ответ 1
Как указывает Фрэнк в своем комментарии к вашему сообщению, оператор return, создающий предупреждение, следующий:
if (post.sanitized) return;
Предупреждение можно отключить, возвращая фиктивное значение (например, null, false, 0). Значение не используется.
Более ранние версии Cloud Function не жаловались, когда функция выходила с использованием оператора return без значения. Это объясняет, почему вы видите return;
в видео, которое вы связали, и в документации. Комментарий к вопросу от Firebaser Frank van Pufeelen объясняет, почему было сделано изменение.
Самый простой способ устранить предупреждение - добавить возвращаемое значение, как предложил Фрэнк:
if (post.sanitized) return 0;
Другой вариант - изменить триггер с onWrite()
на onCreate()
. Тогда функция не будет вызываться, если сообщение очищено, и проверка, которая вызывает предупреждение, не требуется:
exports.sanitizePost = functions.database
.ref('/test/{pushId}')
.onCreate(event => { // <= changed from onWrite()
const post = event.data.val();
//if (post.sanitized) return; // <= no longer needed
console.log('Sanitizing new post', event.params.pushId);
console.log(post);
//post.sanitized = true; // <= not needed when trigger is onCreate()
post.title = sanitize(post.title);
post.body = sanitize(post.body);
return event.data.ref.set(post);
});