Project: /docs/reference/js/_project.yaml
Book: /docs/reference/_book.yaml
page_type: reference
{% comment %}
DO NOT EDIT THIS FILE!
This is generated by the JS SDK team, and any local changes will be
overwritten. Changes should be made in the source code at
https://github.com/firebase/firebase-js-sdk
{% endcomment %}
# ThenableReference interface
A `Promise` that can also act as a `DatabaseReference` when returned by [push()](./database.md#push_c74661c). The reference is available immediately and the `Promise` resolves as the write to the backend completes.
Signature:
```typescript
export declare interface ThenableReference extends DatabaseReference, Pick, 'then' | 'catch'>
```
Extends: [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;
```