我在某些函数中使用了changed()函数,并且在给定文档的情况下不会得到结果。
我在以下文件中添加了一些测试来说明问题。 https://github.com/firebase/firebase-functions/blob/master/src/providers/database.ts
it('should be false when the current value has not changed', () => {
populate({ a: { b: 'c' } }, { a: { b: 'c' } });
expect(subject.child('a').changed()).to.be.false;
});
it('should be false when the current value has not changed, child path exists', () => {
populate({ a: { b: 'c' } }, { a: { b: 'c' } });
expect(subject.child('a/b').changed()).to.be.false;
});
it('should be false when the current value has not changed, child path does not exist', () => {
populate({ a: { b: 'c' } }, { a: { b: 'c' } });
expect(subject.child('a/d').changed()).to.be.false;
});
前两个测试失败,但我希望changed()函数返回false。我误解了文档吗?
参考文献 https://firebase.google.com/docs/reference/functions/functions.database.DeltaSnapshot#changed
答案 0 :(得分:0)
在Firebase SDK for Cloud Functions的单元测试中,langs = ["en_GB"]
的签名为populate
。也就是说,原始数据和原始数据中的更改。
当SDK检查更改时,它会通过查看populate(data, delta)
有效内容中是否存在该值来执行此操作。在已部署的函数中,未明确发送的任何内容都未在delta
有效内容中发送。