gpt4 book ai didi

javascript - 如何在参数函数(Firebase 事务)中使用 Promise?

转载 作者:行者123 更新时间:2023-12-01 03:04:49 24 4
gpt4 key购买 nike

Firebase transaction接收第一个参数作为函数(任何类型)。我可以在该函数中使用返回 Promise 的方法吗? (在我的例子中,它是 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
}
});

在此代码中,函数运行时无需等待 Promise 得到解决。

NodeJS v.6.11.1(Google 云函数)

谢谢!

更新:我期望仅当 Promise 解析无错误(即到达 then)时才从该参数函数返回数据,因此仅在用户创建时才应用事务。

最佳答案

Promise 不能在事务处理程序中使用。事务处理程序需要立即返回事务所在位置数据库的新内容。

调用transaction()它本身返回一个 promise ,因此如果您想在成功交易后执行某些操作,您可以在该 promise (包含交易的成功状态)上使用 then() 并跟进一些其他操作,这些操作也可以从以下位置返回 promise 那里。

现在,您似乎没有在事务中对数据库进行任何更改,所以我很好奇您为什么要使用它。

关于javascript - 如何在参数函数(Firebase 事务)中使用 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46273545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com