2

我有以下云功能:

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 }

删除数据后,这些值wownice包含在后快照中的原因是什么?

我怎样才能可靠地测试这种情况?

4

0 回答 0