Прежде всего, ваше регулярное выражение неверно. Он чувствителен к регистру, что означает, что сообщение на вашем скриншоте «я люблю пиццу» не соответствует «Пицца». Чтобы сделать регистр нечувствительным (и, таким образом, соответствовать «Pizza», «pizza», «piZZA» ...), добавьте в конце флаг i
:
const addImoji = (msg) => {
return msg.replace(/\bpizza\b/gi, "?");
};
Во-вторых, ваша функция возвращает базу данных ссылка. Фактически он не сохраняет новые данные, вызывая set()
или update()
. Ваш код должен быть:
return change.ref.update({ msg: modifiedMsg });
Любая функция asyn c Firebase должна возвращать обещание (а update()
возвращает обещание). Если этого не произойдет, функция не завершится правильно.
При возврате результата update
ваша функция будет продолжать работать до тех пор, пока не будет завершена асинхронная работа по записи нового msg
в базу данных. .