functions.database.DeltaSnapshot#更改了意外结果

时间:2017-08-18 17:30:44

标签: firebase google-cloud-functions

我在某些函数中使用了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

1 个答案:

答案 0 :(得分:0)

在Firebase SDK for Cloud Functions的单元测试中,langs = ["en_GB"] 的签名为populate。也就是说,原始数据和原始数据中的更改

当SDK检查更改时,它会通过查看populate(data, delta)有效内容中是否存在该值来执行此操作。在已部署的函数中,未明确发送的任何内容都未在delta有效内容中发送。