Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在onwrite事件中获取firebase pushID?_Javascript_Node.js_Firebase_Google Cloud Datastore - Fatal编程技术网

Javascript 如何在onwrite事件中获取firebase pushID?

Javascript 如何在onwrite事件中获取firebase pushID?,javascript,node.js,firebase,google-cloud-datastore,Javascript,Node.js,Firebase,Google Cloud Datastore,如何获取推送ID 我有一个JSON,如下所示: purchaseTransaction: { xxxxxx: { amount: 1000, user: yyyyyyy } } 当更新这个purchaseTransaction文档时,我想获取pushID(这是由firebase生成的) 从: 因此,在您的情况下,推送ID将作为context.params.pushId提供。对于您的代码,请使用context.params.pushId谢谢@Frank v

如何获取推送ID

我有一个JSON,如下所示:

purchaseTransaction: {
    xxxxxx: {
      amount: 1000,
      user: yyyyyyy
    }
}
当更新这个purchaseTransaction文档时,我想获取pushID(这是由firebase生成的)

从:


因此,在您的情况下,推送ID将作为
context.params.pushId

提供。对于您的代码,请使用
context.params.pushId

谢谢@Frank van Puffelen,我对快照和上下文有点混淆。在一些示例中,onCreate之后只有快照,没有上下文。我不清楚的另一件事是{pushId}与{uid}。我最好的猜测是,这些是Firebase SDK云函数的v1.0之前版本的示例。关于第二个问题:
{}
之间的名称只是您为路径的该段指定的变量名。因此,实际名称并不重要,只要它在路径字符串和代码中匹配即可
pushID
通常用于
push()
生成的路径段,
uid
通常用于
user.uid
生成的路径段。您非常有帮助,知识渊博。非常感谢!谢谢道格·史蒂文森。我来试试。为什么要投否决票?
exports.addPurchaseTransactionToUser = functions.database.ref('/purchaseTransaction/{pushId}').onWrite((change, context) => {
  const snapshot = change.after;
  const val = snapshot.val();
  console.log('val',val);

  // How to get the pushID?

});
exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
    .onCreate((snapshot, context) => {
      // Grab the current value of what was written to the Realtime Database.
      const original = snapshot.val();
      console.log('Uppercasing', context.params.pushId, original);