Javascript 如何在onwrite事件中获取firebase pushID?
如何获取推送ID 我有一个JSON,如下所示: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
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);