当前位置: 首页 > 知识库问答 >
问题:

如何在参数函数(Firebase事务)中使用promise?

司马洲
2023-03-14
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(谷歌云功能

谢了!

Update:我希望只有当promise没有错误地解析(即到达然后)时才从这个参数函数返回数据,因此只有在用户创建时才应用事务。

共有1个答案

慕嘉茂
2023-03-14

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

对transaction()的调用本身会返回一个promise,所以如果您想在成功的事务之后做一些事情,可以对该promise使用then()(它包含事务的成功状态),然后执行一些其他操作,这些操作也可以从该promise返回一个promise。

现在,看起来您根本没有对事务中的数据库进行任何更改,所以我很好奇您为什么要使用一个。

 类似资料:
  • 问题内容: 以传统方式添加事件侦听器: 但是我想适应addEventListener的方式: 它不起作用,因为我无法将getSelection()中的任何参数作为addEventListener方法中的第二个参数传递?据我所知,我只能使用没有括号的函数名。 任何的想法? 问题答案: 无需传递任何内容。用于的函数将自动绑定到当前元素。只需在您的函数中使用: 如果要将任意数据传递给函数,请将其包装在您

  • 在我正在开发的Firebase web应用程序中,我想从邮件地址获取用户ID。为此,我正在尝试编写一个云函数。但它不起作用,或者我没有正确使用它。以下是当前代码(基于我在网上找到的一些示例): 运行“firebase deploy”时,我看不到任何问题。然后,我尝试用各种方法测试该功能,就像我在本教程之后编写的演示应用程序一样。 例如(现有和不存在的邮件地址): 但在任何一种情况下,我都不会在We

  • 我是相当新的JS,尤其是节点和快递。我正在学习一些关于如何构建API的教程,同时学习JS的特殊功能,如let/const/var、箭头函数等。 在许多教程中,我看到了如下内容: 例如,“somecode”是一个get请求 “result”是返回值的名称还是jsdeveloper使用的约定?我的意思是,这个例子有效吗? 同样对于req、res变量,这意味着什么? 下面是getById函数(再次使用“

  • 我正在进行一个项目,在该项目中,我使用firebase函数中的express来运行使用手柄的服务器端渲染页面,一切都很正常,但当我使用firestore admin sdk时,我遇到以下错误: 我在函数/index.js文件中使用此代码 函数工作正常,但尝试const db=admin时。firestore()给了我一个错误。我还尝试了函数和firestore的模拟器,但仍然得到了相同的错误 请帮

  • 我有一个HTML标记,其中当前是 但是,我希望遵循es lint规则(我希望避免内联函数),并且我在处理这个onChange函数的参数时遇到了问题。 在我的构造函数中,我有: 我看过这篇文章,但目前还没有运气。我需要做什么才能将值和事件都传递给绑定函数?

  • 问题内容: 我对PHP函数的默认值感到困惑。说我有一个这样的功能: 如果我想为$ x使用默认参数并为$ y设置不同的参数怎么办? 我一直在尝试不同的方法,但我变得更加困惑。例如,我尝试了以下两种方法: 但是这两个都不会为$ x产生适当的默认参数。我也试图通过变量名来设置它。 我完全希望这样的事情能奏效。但这根本不符合我的预期。似乎不管我做什么,每次调用该函数时,无论如何我都必须最终键入默认参数。而