我有以下云功能:
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,哇:321,不错:909}
之后:{testData:123,moreTestData:99999321,哇:321,不错:909}
当数据被移除后,后快照中包含值wow
和nice
怎么来?
如何可靠地测试此案例?