当前位置: 首页 > 面试题库 >

从Cloud Functions for Firebase中的数据库触发器中获取用户ID?

龚鸿雪
2023-03-14
问题内容

在下面的示例中,是否有办法获取写给/ messages / {pushId} / original的用户的uid?

exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
.onWrite(event => {
  // Grab the current value of what was written to the Realtime Database.
  const original = event.data.val();
  console.log('Uppercasing', event.params.pushId, original);
  const uppercase = original.toUpperCase();
  // You must return a Promise when performing asynchronous tasks inside a Functions such as
  // writing to the Firebase Realtime Database.
  // Setting an "uppercase" sibling in the Realtime Database returns a Promise.
  return event.data.ref.parent.child('uppercase').set(uppercase);
});

问题答案:

自从Firebase功能达到1.0版以来,这种行为就不再没有记载,而已进行了重大更改。请务必阅读文档。

上下文已添加到云功能,您可以像这样使用它

  exports.dbWrite = functions.database.ref('/path/with/{id}').onWrite((data, context) => {
  const authVar = context.auth; // Auth information for the user.
  const authType = context.authType; // Permissions level for the user.
  const pathId = context.params.id; // The ID in the Path.
  const eventId = context.eventId; // A unique event ID.
  const timestamp = context.timestamp; // The timestamp at which the event happened.
  const eventType = context.eventType; // The type of the event that triggered this function.
  const resource = context.resource; // The resource which triggered the event.
  // ...
});


 类似资料:
  • 我有一个blob触发器Azure函数,每次将新文件添加到我的blob存储时都会调用该函数。我自动获取该文件的名称作为输入。除了名称之外,我还需要附加到给定文件的元数据。我一直在研究数据输入绑定,但我无法理解它。我需要做些什么才能将文件元数据作为输入?或者,甚至只是在我的函数中访问它?

  • 问题内容: 是否可以将触发器应用于MySQL中的跨数据库访问?如果是,请举一个例子。我的目的是如果在database1中插入/更新/删除了任何新数据,则在database2中插入/更新/删除数据。我正在使用MySQL 5.1 问题答案: 是的你可以。您可以创建一个过程并在触发器中调用它。程序示例: 然后创建触发器:

  • 我有一个辅助项目网站,人们可以在那里评论东西,现在我需要显示用户的评论和评论者的用户名。问题是,我无法获得登录用户的用户名。 评论示例: 1) 评论人-Shelo 测试评论 2) 评论人-ProGa 测试评论2 现在的问题是,如果我试图获取“当前登录”用户的用户名,当用户登录时,两条评论都会有相同的用户名 上面的代码示例是您当前登录用户的方式。因此,如果我使用这段代码,并尝试通过

  • 问题内容: 我有这个数据库结构 我需要的是在特定日期登录的所有用户的列表,例如 我目前正在尝试通过单个SQL查询完成此操作,但是我真的不知道如何获取表中记录的所有时间的时间跨度以及如何将其连接到登录的用户。 我最大的问题是如何创建数据库中所有时间的“虚拟”表… 问题答案: 编辑 CTE的二进制增长,而不是线性增长。2 ^ 100个日期应在合理范围内。

  • 问题内容: 我想从Oracle数据库架构中检索所有触发器名称。 我使用getFunctions检索所有函数,但找不到触发器的另一个函数。 问题答案: 您可以使用元数据来做到这一点。

  • 问题内容: 我有2种情况,我要在codeigniter中提取同一表的全部数据和行总数,我想知道那是一种方法,可以从中获取行总数,整个数据和3个最新插入的记录通过一个代码在同一张桌子上 两种情况的控制器代码如下(尽管我分别使用不同的参数将其应用于每种情况) 1)从codeigniter中的表中获取全部数据 型号代码 查看代码 2)在Codeigniter中从表中获取行数 查看代码 问题答案: 您只能