如何在参数函数中使用承诺(Firebase Transaction)



firebase Transaction将第一个参数作为函数(任何类型)接收。我可以使用在此功能中返回承诺的方法吗?(在我的情况下是firebase-admin.auth().createUser())。

一些清晰的代码:

const ref = admin.database().ref(...);
ref.transaction((currentData) => {
  if (currentData === null && ...) {
    admin
      .auth()
      .createUser({...})
      .then(data => return { uid: data.uid }) // Need to return this 'someData' from function that wraps current promise.
      .catch(() => return null)
  } else {
    return null
  }
});

在此代码中,函数运行而无需等待应许得到解决。

nodejs v.6.11.1(Google Cloud函数)

谢谢!

更新:我希望只有在没有错误的情况下解决Promise(即达到then)时,才能从此参数 - 函数返回数据,因此仅在用户创建的情况下应用交易。

承诺不能在事务处理程序内使用。需要交易处理程序立即在交易位置返回数据库的新内容。

呼叫交易()本身会返回诺言,因此,如果您想在成功交易后做某事,则可以在该诺言(包含交易的成功状态)上使用(),然后跟进一些其他可能还可以从那里回报承诺的动作。

现在,看起来您在交易中的数据库中看起来都没有任何更改,所以我很好奇为什么您甚至使用一个。

相关内容

  • 没有找到相关文章

最新更新