我有以下云功能:
export const userActicityUpdate = functions.database.ref("/userActivities/{userId}/{objectId}").onUpdate((change, context) => {
console.log("Before:\n", change.before.val(), "\nAfter:\n", change.after.val())
return true
})
当我将以下数据存储在userActivities/123/321
:
{
"testData": 123
"moreTestData": 321
"wow": 321
"nice": 909
}
然后将该节点处的数据设置为:
{
"testData": 123
"moreTestData": 99999321
}
我希望上面的函数触发一次,更改参数与上面的两条数据完全匹配。这就是我部署函数并更改数据时发生的情况。
但是当我通过functions:shell
终端进行测试时,我看到了不同的change.after
快照。
我像这样运行函数:
userActicityUpdate({
before: {testData:123,moreTestData:321,wow:321,nice:909},
after: {testData:123,moreTestData:99999321}
})
然后我看到控制台的以下输出:
之前:{ testData: 123, moreTestData: 321, wow: 321, nice: 909 }
之后:{ testData: 123, moreTestData: 99999321, wow: 321, nice: 909 }
删除数据后,这些值wow
和nice
包含在后快照中的原因是什么?
我怎样才能可靠地测试这种情况?