diff --git a/spec/v1/providers/database.spec.ts b/spec/v1/providers/database.spec.ts index 18d973b1d..c189ca4eb 100644 --- a/spec/v1/providers/database.spec.ts +++ b/spec/v1/providers/database.spec.ts @@ -494,20 +494,31 @@ describe("DataSnapshot", () => { it("should deal with null-values appropriately", () => { populate(null); expect(subject.val()).to.be.null; + expect(subject.child("a").val()).to.be.null; + expect(subject.child("a/b").val()).to.be.null; populate({ myKey: null }); expect(subject.val()).to.be.null; + expect(subject.child("myKey").val()).to.be.null; + expect(subject.child("myKey/a").val()).to.be.null; + expect(subject.child("myKey/a/b").val()).to.be.null; + expect(subject.child("a").val()).to.be.null; + expect(subject.child("a/b").val()).to.be.null; }); it("should deal with empty object values appropriately", () => { populate({}); expect(subject.val()).to.be.null; + expect(subject.child("a").val()).to.be.null; populate({ myKey: {} }); expect(subject.val()).to.be.null; + expect(subject.child("myKey").val()).to.be.null; populate({ myKey: { child: null } }); expect(subject.val()).to.be.null; + expect(subject.child("myKey").val()).to.be.null; + expect(subject.child("myKey/child").val()).to.be.null; }); it("should deal with empty array values appropriately", () => { diff --git a/src/common/providers/database.ts b/src/common/providers/database.ts index d73bb5503..7fd4da89b 100644 --- a/src/common/providers/database.ts +++ b/src/common/providers/database.ts @@ -128,7 +128,7 @@ export class DataSnapshot implements database.DataSnapshot { let source = this._data; if (parts.length) { for (const part of parts) { - if (source[part] === undefined) { + if (typeof source === "undefined" || source === null) { return null; } source = source[part];