我试图了解如何使用谷歌云功能正确执行异步操作。我似乎有语法错误,但我不知道如何修复它。在添加 then()
之前,其余代码能够按预期编译工作。请帮忙
错误:
SyntaxError: Unexpected token )
at new Script (vm.js:51:7)
at createScript (vm.js:138:10)
at Object.runInThisContext (vm.js:199:10)
at Module._compile (module.js:624:28)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
可能出现错误的区域
if (inviterUID == partnerUID) {
return admin.firestore().collection('users').doc(inviterUID).collection('wallet').doc(uid).set({
'partnerName': username,
'browniePoints': 0
}).then(() => {
console.log('testing');
})
})
整个代码
exports.checkInviteRequest = functions.firestore
.document('users/{userID}/partnerInviteRequests/{inviterUID}')
.onDelete(invite => {
const uid = invite.params.userID
const inviterUID = invite.params.inviterUID
const deletedInvite = invite.data.previous.data();
const name = deletedInvite.username;
return admin.firestore().collection('users').doc(uid).get().then(profileInfo => {
const partnerUID = profileInfo.data().partnerUID
const username = profileInfo.data().username
if (inviterUID == partnerUID) {
return admin.firestore().collection('users').doc(inviterUID).collection('wallet').doc(uid).set({
'partnerName': username,
'browniePoints': 0
}).then(() => {
console.log('testing');
})
})
})
});
最佳答案
您的 if
语句中的右括号过多。具体来说,该 block 的最后一行:
if (inviterUID == partnerUID) {
return admin.firestore().collection('users').doc(inviterUID).collection('wallet').doc(uid).set({
'partnerName': username,
'browniePoints': 0
}).then(() => {
console.log('testing');
})
})
最后一个 )
不应该在那里。所以:
if (inviterUID == partnerUID) {
return admin.firestore().collection('users').doc(inviterUID).collection('wallet').doc(uid).set({
'partnerName': username,
'browniePoints': 0
}).then(() => {
console.log('testing');
})
}
关于javascript - 使用谷歌云函数出现语法错误问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301311/