Skip to content

Property 'child' in type 'DataSnapshot' is not assignable to the same property in base type 'DataSnapshot'. after updating firebase-admin to v12.0.0 #1513

Closed
@sceee

Description

@sceee

Related issues

Similar/the same issue as the closed issues #1442 and #1444 and #1496 (comment)

I am just reopening this so it gets attention as the comments in the closed issues might be overlooked.

[REQUIRED] Version info

node: v18.18.0

firebase-functions: 4.6.0

firebase-tools: 13.0.3

firebase-admin: 12.0.0

[REQUIRED] Test case

Occurs during build.

[REQUIRED] Steps to reproduce

Build.

[REQUIRED] Expected behavior

No typescript compile error.

[REQUIRED] Actual behavior

node_modules/firebase-functions/lib/common/providers/database.d.ts:80:5 - error TS2416: Property 'child' in type 'DataSnapshot' is not assignable to the same property in base type 'DataSnapshot'.
  Type '(childPath: string) => DataSnapshot' is not assignable to type '(path: string) => DataSnapshot'.
    Call signature return types 'DataSnapshot' and 'DataSnapshot' are incompatible.
      The types of 'forEach' are incompatible between these types.
        Type '(action: (a: DataSnapshot) => boolean | void) => boolean' is not assignable to type '(action: (a: IteratedDataSnapshot) => boolean | void) => boolean'.
          Types of parameters 'action' and 'action' are incompatible.
            Types of parameters 'a' and 'a' are incompatible.
              Type 'DataSnapshot' is not assignable to type 'IteratedDataSnapshot'.
                Types of property 'key' are incompatible.
                  Type 'string | null' is not assignable to type 'string'.
                    Type 'null' is not assignable to type 'string'.

80     child(childPath: string): DataSnapshot;
       ~~~~~

node_modules/firebase-functions/lib/common/providers/database.d.ts:100:5 - error TS2416: Property 'forEach' in type 'DataSnapshot' is not assignable to the same property in base type 'DataSnapshot'.
  Type '(action: (a: DataSnapshot) => boolean | void) => boolean' is not assignable to type '(action: (a: IteratedDataSnapshot) => boolean | void) => boolean'.

100     forEach(action: (a: DataSnapshot) => boolean | void): boolean;

Were you able to successfully deploy your functions?

No, as they cannot be built.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions