diff --git a/.changeset/silver-jeans-sell.md b/.changeset/silver-jeans-sell.md new file mode 100644 index 00000000000..bf479c302ec --- /dev/null +++ b/.changeset/silver-jeans-sell.md @@ -0,0 +1,7 @@ +--- +'@firebase/database-compat': patch +'@firebase/database-types': patch +'@firebase/database': patch +--- + +Added non-null parent properties to ThenableReference diff --git a/common/api-review/database.api.md b/common/api-review/database.api.md index 4a98aea3d4e..0b7b36869d6 100644 --- a/common/api-review/database.api.md +++ b/common/api-review/database.api.md @@ -228,6 +228,10 @@ export function startAt(value?: number | string | boolean | null, key?: string): // @public export interface ThenableReference extends DatabaseReference, Pick, 'then' | 'catch'> { + // (undocumented) + key: string; + // (undocumented) + parent: DatabaseReference; } // @public diff --git a/docs-devsite/database.thenablereference.md b/docs-devsite/database.thenablereference.md index 69ad3c6ed55..f66394d36f8 100644 --- a/docs-devsite/database.thenablereference.md +++ b/docs-devsite/database.thenablereference.md @@ -19,3 +19,25 @@ export declare interface ThenableReference extends DatabaseReference, PickExtends: [DatabaseReference](./database.databasereference.md#databasereference_interface), Pick<Promise<[DatabaseReference](./database.databasereference.md#databasereference_interface)>, 'then' \| 'catch'> +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [key](./database.thenablereference.md#thenablereferencekey) | string | | +| [parent](./database.thenablereference.md#thenablereferenceparent) | [DatabaseReference](./database.databasereference.md#databasereference_interface) | | + +## ThenableReference.key + +Signature: + +```typescript +key: string; +``` + +## ThenableReference.parent + +Signature: + +```typescript +parent: DatabaseReference; +``` diff --git a/packages/database-types/index.d.ts b/packages/database-types/index.d.ts index f304a4ed5b3..43557ebe1ac 100644 --- a/packages/database-types/index.d.ts +++ b/packages/database-types/index.d.ts @@ -164,7 +164,10 @@ export interface TransactionResult { export interface ThenableReference extends Reference, - Pick, 'then' | 'catch'> {} + Pick, 'then' | 'catch'> { + key: string; + parent: Reference; +} export function enableLogging( logger?: boolean | ((a: string) => any), diff --git a/packages/database/src/api/Reference.ts b/packages/database/src/api/Reference.ts index c2e97aa229e..6c3da5ac489 100644 --- a/packages/database/src/api/Reference.ts +++ b/packages/database/src/api/Reference.ts @@ -119,7 +119,10 @@ export interface DatabaseReference extends Query { */ export interface ThenableReference extends DatabaseReference, - Pick, 'then' | 'catch'> {} + Pick, 'then' | 'catch'> { + key: string; + parent: DatabaseReference; +} /** A callback that can invoked to remove a listener. */ export type Unsubscribe = () => void; diff --git a/packages/database/src/api/Reference_impl.ts b/packages/database/src/api/Reference_impl.ts index 2b606bb83ca..e3ccf3584bc 100644 --- a/packages/database/src/api/Reference_impl.ts +++ b/packages/database/src/api/Reference_impl.ts @@ -568,7 +568,10 @@ export function onDisconnect(ref: DatabaseReference): OnDisconnect { export interface ThenableReferenceImpl extends ReferenceImpl, - Pick, 'then' | 'catch'> {} + Pick, 'then' | 'catch'> { + key: string; + parent: ReferenceImpl; +} /** * Generates a new child location using a unique key and returns its diff --git a/packages/firebase/compat/index.d.ts b/packages/firebase/compat/index.d.ts index 92c7bd2c278..fc2bb09567d 100644 --- a/packages/firebase/compat/index.d.ts +++ b/packages/firebase/compat/index.d.ts @@ -7370,7 +7370,10 @@ declare namespace firebase.database { interface ThenableReference extends firebase.database.Reference, - Pick, 'then' | 'catch'> {} + Pick, 'then' | 'catch'> { + key: string; + parent: Reference; + } /** * Logs debugging information to the console.