Функции, которые запускаются фоновыми операциями (например, запись в Firestore в вашем случае) и которые выполняют асинхронные операции (например, запись в sendToDevice()
в вашем коде), должны возвращать либо значение, либо обещание дать понять, когда они будут сделаны. Вы ничего не возвращаете, поэтому Cloud Functions жалуется, что не знает, когда код будет готов.
Поскольку вы нигде не используете переменную getDoc
, вы также можете ее вернуть. return admin.messaging().sendToDevice()
изнутри всплывет и даст облачным функциям информацию, необходимую для того, чтобы узнать, как долго будет работать контейнер вашей функции.
return cityRef.get().then(doc=>{
...
}).catch(err=>{
...
});