javascript - 使用谷歌云函数出现语法错误问题

标签 javascript google-cloud-functions google-cloud-firestore

我试图了解如何使用谷歌云功能正确执行异步操作。我似乎有语法错误,但我不知道如何修复它。在添加 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/

相关文章:

google-cloud-platform - 如何收听YouTube新视频?

javascript - Onsubmit 事件被 onchange 悄无声息地杀死

函数中的Javascript变量更改全局变量

javascript - 使用 firebase 调用数据库中的所有对象

android - 无法反序列化对象。类未定义无参数构造函数。如果您使用 ProGuard,请确保未剥离这些构造函数

firebase - 如何在 flutter 中从 firebase 获取数据

flutter - 如何将 Firestore 中的数据转换为 dart?

javascript - 了解 Javascript 中的事件处理程序

JavaScript 幻灯片(从其他幻灯片开始,取决于星期几)

firebase - 尝试部署Firebase函数部署错误: Failed to configure trigger