【发布时间】:2018-06-12 04:18:39
【问题描述】:
我已通过其他线程阅读并尝试将某些内容返回到我的云函数,但它仍然给出相同的函数返回未定义、预期的 Promise 或值警告...我在这里缺少什么?
基本上,我使用 mailgun-js 向用户和管理员发送两封电子邮件,即使发送成功等等,我的日志中仍然收到相同的警告。
exports.sendSample = functions.database
.ref( 'sample/{pushID}' )
.onWrite( event => {
// only trigger if it's new
if ( !event.data.exists() || event.data.previous.exists() ) return 0
const e = event.data.val()
const toUser = {
to : `${ e.email }`,
from : `xxx`,
subject : `xxx`,
html : `xxx`
}
const toAdmin = {
to : `${ e.admin }`,
from : `xxx`,
subject : `xxx`,
html : `xxx`
}
// send sms
if ( e.mobile !== 'none' ) {
return client.messages.create({
body : `xxx`,
to : `${e.mobile}`,
from : `xxx`
})
.then( message => {
sendEmail()
return message.sid
})
.catch( err => {
return err
})
} else {
sendEmail()
}
// send email
function sendEmail() {
if ( e.email !== 'none' ) {
return mailgun.messages().send( toUser, ( err, body ) => {
return ( err, body )
return mailgun.messages().send( toAdmin, ( err, body ) => {
return ( err, body )
})
})
} else {
return true
}
}
})
【问题讨论】:
-
可以分享完整的云功能代码吗?
-
正如 Mark 所说:确保我们可以看到重现问题的完整但最少的 Cloud Functions 代码。现在,我们缺少将
sendEmail连接到 Cloud Functions 的方式。但是我立即注意到e.email === 'none'时您没有返回任何内容,这可能是个问题。 -
我尝试在 email === none 时返回 true,但结果仍然相似。 @mark922 我现在正在使用完整功能更新问题。
标签: javascript firebase google-cloud-functions mailgun