数据库
首页 > 数据库> > javascript – 从Cloud Functions for Firebase中的数据库触发器获取用户ID?

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

作者:互联网

在下面的示例中,有没有办法获取写入/ 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版本以来,此行为不再是未记录的,但已经轻微改变.一定要阅读the docs.

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

  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.
  // ...
});

标签:firebase-admin,javascript,firebase,google-cloud-functions
来源: https://codeday.me/bug/20190916/1806661.html