Index
Properties
key
parent
The parent location of a Reference.
The parent of a root Reference is null.
ref
Returns a Reference to the Query's location.
root
The root Reference of the Database.
Methods
child
- 
							
							Gets a Referencefor the location at the specified relative path.The relative path can either be a simple child name (for example, "ada") or a deeper slash-separated path (for example, "ada/name/first"). Parameters- 
									path: stringA relative path from this location to the desired child location. 
 Returns ReferenceThe specified child location. 
- 
									
endAt 
					- 
							
							Creates a Querywith the specified ending point.Using startAt(),startAfter(),endBefore(),endAt()andequalTo()allows you to choose arbitrary starting and ending points for your queries.The ending point is inclusive, so children with exactly the specified value will be included in the query. The optional key argument can be used to further limit the range of the query. If it is specified, then children that have exactly the specified value must also have a key name less than or equal to the specified key. You can read more about endAt()in Filtering data.Parameters- 
									value: number | string | boolean | nullThe value to end at. The argument type depends on which orderBy*()function was used in this query. Specify a value that matches theorderBy*()type. When used in combination withorderByKey(), the value must be a string.
- 
									Optional key: stringThe child key to end at, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority. 
 Returns Query
- 
									
endBefore 
					- 
							
							Creates a Querywith the specified ending point (exclusive).Using startAt(),startAfter(),endBefore(),endAt()andequalTo()allows you to choose arbitrary starting and ending points for your queries.The ending point is exclusive. If only a value is provided, children with a value less than the specified value will be included in the query. If a key is specified, then children must have a value lesss than or equal to the specified value and a a key name less than the specified key. Parameters- 
									value: number | string | boolean | null
- 
									Optional key: string
 Returns Query
- 
									
equalTo 
					- 
							
							Creates a Querythat includes children that match the specified value.Using startAt(),startAfter(),endBefore(),endAt()andequalTo()allows you to choose arbitrary starting and ending points for your queries.The optional key argument can be used to further limit the range of the query. If it is specified, then children that have exactly the specified value must also have exactly the specified key as their key name. This can be used to filter result sets with many matches for the same value. You can read more about equalTo()in Filtering data.Parameters- 
									value: number | string | boolean | nullThe value to match for. The argument type depends on which orderBy*()function was used in this query. Specify a value that matches theorderBy*()type. When used in combination withorderByKey(), the value must be a string.
- 
									Optional key: stringThe child key to start at, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority. 
 Returns Query
- 
									
get
- 
							
							Gets the most up-to-date result for this query. Returns Promise<DataSnapshot>A promise which resolves to the resulting DataSnapshot if a value is available, or rejects if the client is unable to return a value (e.g., if the server is unreachable and there is nothing cached). 
isEqual 
					- 
							
							Returns whether or not the current and provided queries represent the same location, have the same query parameters, and are from the same instance of firebase.app.App.Two Referenceobjects are equivalent if they represent the same location and are from the same instance offirebase.app.App.Two Queryobjects are equivalent if they represent the same location, have the same query parameters, and are from the same instance offirebase.app.App. Equivalent queries share the same sort order, limits, and starting and ending points.Parameters- 
									other: Query | nullThe query to compare against. 
 Returns booleanWhether or not the current and provided queries are equivalent. 
- 
									
limitToFirst 
					- 
							
							Generates a new Querylimited to the first specific number of children.The limitToFirst()method is used to set a maximum number of children to be synced for a given callback. If we set a limit of 100, we will initially only receive up to 100child_addedevents. If we have fewer than 100 messages stored in our Database, achild_addedevent will fire for each message. However, if we have over 100 messages, we will only receive achild_addedevent for the first 100 ordered messages. As items change, we will receivechild_removedevents for each item that drops out of the active list so that the total number stays at 100.You can read more about limitToFirst()in Filtering data.Parameters- 
									limit: numberThe maximum number of nodes to include in this query. 
 Returns Query
- 
									
limitToLast 
					- 
							
							Generates a new Queryobject limited to the last specific number of children.The limitToLast()method is used to set a maximum number of children to be synced for a given callback. If we set a limit of 100, we will initially only receive up to 100child_addedevents. If we have fewer than 100 messages stored in our Database, achild_addedevent will fire for each message. However, if we have over 100 messages, we will only receive achild_addedevent for the last 100 ordered messages. As items change, we will receivechild_removedevents for each item that drops out of the active list so that the total number stays at 100.You can read more about limitToLast()in Filtering data.Parameters- 
									limit: numberThe maximum number of nodes to include in this query. 
 Returns Query
- 
									
off
- 
							
							Detaches a callback previously attached with on().Detach a callback previously attached with on(). Note that ifon()was called multiple times with the same eventType and callback, the callback will be called multiple times for each event, andoff()must be called multiple times to remove the callback. Callingoff()on a parent listener will not automatically remove listeners registered on child nodes,off()must also be called on any child listeners to remove the callback.If a callback is not specified, all callbacks for the specified eventType will be removed. Similarly, if no eventType is specified, all callbacks for the Referencewill be removed.Parameters- 
									Optional eventType: EventTypeOne of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved." If omitted, all callbacks for the Referencewill be removed.
- 
									Optional callback: (a: DataSnapshot, b?: string | null) => anyThe callback function that was passed to on()orundefinedto remove all callbacks.- 
											- 
													Parameters- 
															a: DataSnapshot
- 
															Optional b: string | null
 Returns any
- 
															
 
- 
													
 
- 
											
- 
									Optional context: Object | nullThe context that was passed to on().
 Returns void
- 
									
on
- 
							
							Listens for data changes at a particular location. This is the primary way to read data from a Database. Your callback will be triggered for the initial data and again whenever the data changes. Use off( )to stop receiving updates. See Retrieve Data on the Web for more details.value eventThis event will trigger once with the initial data stored at this location, and then trigger again each time the data changes. The DataSnapshotpassed to the callback will be for the location at whichon()was called. It won't trigger until the entire contents has been synchronized. If the location has no data, it will be triggered with an emptyDataSnapshot(val()will returnnull).child_added eventThis event will be triggered once for each initial child at this location, and it will be triggered again every time a new child is added. The DataSnapshotpassed into the callback will reflect the data for the relevant child. For ordering purposes, it is passed a second argument which is a string containing the key of the previous sibling child by sort order, ornullif it is the first child.child_removed eventThis event will be triggered once every time a child is removed. The DataSnapshotpassed into the callback will be the old data for the child that was removed. A child will get removed when either:- a client explicitly calls remove()on that child or one of its ancestors
- a client calls set(null)on that child or one of its ancestors
- that child has all of its children removed
- there is a query in effect which now filters out the child (because it's sort order changed or the max limit was hit)
 child_changed eventThis event will be triggered when the data stored in a child (or any of its descendants) changes. Note that a single child_changedevent may represent multiple changes to the child. TheDataSnapshotpassed to the callback will contain the new child contents. For ordering purposes, the callback is also passed a second argument which is a string containing the key of the previous sibling child by sort order, ornullif it is the first child.child_moved eventThis event will be triggered when a child's sort order changes such that its position relative to its siblings changes. The DataSnapshotpassed to the callback will be for the data of the child that has moved. It is also passed a second argument which is a string containing the key of the previous sibling child by sort order, ornullif it is the first child.Parameters- 
									eventType: EventTypeOne of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved." 
- 
									callback: (a: DataSnapshot, b?: string | null) => anyA callback that fires when the specified event occurs. The callback will be passed a DataSnapshot. For ordering purposes, "child_added", "child_changed", and "child_moved" will also be passed a string containing the key of the previous child, by sort order, or nullif it is the first child.- 
											- 
													Parameters- 
															a: DataSnapshot
- 
															Optional b: string | null
 Returns any
- 
															
 
- 
													
 
- 
											
- 
									Optional cancelCallbackOrContext: ((a: Error) => any) | Object | nullAn optional callback that will be notified if your event subscription is ever canceled because your client does not have permission to read this data (or it had permission but has now lost it). This callback will be passed an Errorobject indicating why the failure occurred.
- 
									Optional context: Object | nullIf provided, this object will be used as thiswhen calling your callback(s).
 Returns (a: DataSnapshot | null, b?: string | null) => anyThe provided callback function is returned unmodified. This is just for convenience if you want to pass an inline function to on()but store the callback function for later passing tooff().- 
									- 
											Parameters- 
													a: DataSnapshot | null
- 
													Optional b: string | null
 Returns any
- 
													
 
- 
											
 
- a client explicitly calls 
onDisconnect 
					- 
							
							Returns an OnDisconnectobject - see Enabling Offline Capabilities in JavaScript for more information on how to use it.Returns OnDisconnect
once
- 
							
							Listens for exactly one event of the specified event type, and then stops listening. This is equivalent to calling on(), and then callingoff()inside the callback function. Seeon()for details on the event types.Parameters- 
									eventType: EventTypeOne of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved." 
- 
									Optional successCallback: (a: DataSnapshot, b?: string | null) => anyA callback that fires when the specified event occurs. The callback will be passed a DataSnapshot. For ordering purposes, "child_added", "child_changed", and "child_moved" will also be passed a string containing the key of the previous child by sort order, or nullif it is the first child.- 
											- 
													Parameters- 
															a: DataSnapshot
- 
															Optional b: string | null
 Returns any
- 
															
 
- 
													
 
- 
											
- 
									Optional failureCallbackOrContext: ((a: Error) => void) | Object | nullAn optional callback that will be notified if your client does not have permission to read the data. This callback will be passed an Errorobject indicating why the failure occurred.
- 
									Optional context: Object | nullIf provided, this object will be used as thiswhen calling your callback(s).
 Returns Promise<DataSnapshot>
- 
									
orderByChild 
					- 
							
							Generates a new Queryobject ordered by the specified child key.Queries can only order by one key at a time. Calling orderByChild()multiple times on the same query is an error.Firebase queries allow you to order your data by any child key on the fly. However, if you know in advance what your indexes will be, you can define them via the .indexOn rule in your Security Rules for better performance. See the .indexOn rule for more information. You can read more about orderByChild()in Sort data.Parameters- 
									path: string
 Returns Query
- 
									
orderByKey 
					
				orderByPriority 
					
				orderByValue 
					
				push
- 
							
							Generates a new child location using a unique key and returns its Reference.This is the most common pattern for adding data to a collection of items. If you provide a value to push(), the value is written to the generated location. If you don't pass a value, nothing is written to the database and the child remains empty (but you can use theReferenceelsewhere).The unique keys generated by push()are ordered by the current time, so the resulting list of items is chronologically sorted. The keys are also designed to be unguessable (they contain 72 random bits of entropy).See Append to a list of data See The 2^120 Ways to Ensure Unique Identifiers Parameters- 
									Optional value: anyOptional value to be written at the generated location. 
- 
									Optional onComplete: (a: Error | null) => anyCallback called when write to server is complete. - 
											- 
													Parameters- 
															a: Error | null
 Returns any
- 
															
 
- 
													
 
- 
											
 Returns ThenableReferenceCombined PromiseandReference; resolves when write is complete, but can be used immediately as theReferenceto the child location.
- 
									
remove
- 
							
							Removes the data at this Database location. Any data at child locations will also be deleted. The effect of the remove will be visible immediately and the corresponding event 'value' will be triggered. Synchronization of the remove to the Firebase servers will also be started, and the returned Promise will resolve when complete. If provided, the onComplete callback will be called asynchronously after synchronization has finished. Parameters- 
									Optional onComplete: (a: Error | null) => voidCallback called when write to server is complete. - 
											- 
													Parameters- 
															a: Error | null
 Returns void
- 
															
 
- 
													
 
- 
											
 Returns Promise<void>Resolves when remove on server is complete. 
- 
									
set
- 
							
							Writes data to this Database location. This will overwrite any data at this location and all child locations. The effect of the write will be visible immediately, and the corresponding events ("value", "child_added", etc.) will be triggered. Synchronization of the data to the Firebase servers will also be started, and the returned Promise will resolve when complete. If provided, the onCompletecallback will be called asynchronously after synchronization has finished.Passing nullfor the new value is equivalent to callingremove(); namely, all data at this location and all child locations will be deleted.set()will remove any priority stored at this location, so if priority is meant to be preserved, you need to usesetWithPriority()instead.Note that modifying data with set()will cancel any pending transactions at that location, so extreme care should be taken if mixingset()andtransaction()to modify the same data.A single set()will generate a single "value" event at the location where theset()was performed.Parameters- 
									value: anyThe value to be written (string, number, boolean, object, array, or null). 
- 
									Optional onComplete: (a: Error | null) => voidCallback called when write to server is complete. - 
											- 
													Parameters- 
															a: Error | null
 Returns void
- 
															
 
- 
													
 
- 
											
 Returns Promise<void>Resolves when write to server is complete. 
- 
									
setPriority 
					- 
							
							Sets a priority for the data at this Database location. Applications need not use priority but can order collections by ordinary properties (see Sorting and filtering data). Parameters- 
									priority: string | number | null
- 
									onComplete: (a: Error | null) => void- 
											- 
													Parameters- 
															a: Error | null
 Returns void
- 
															
 
- 
													
 
- 
											
 Returns Promise<void>
- 
									
setWithPriority  
					- 
							
							Writes data the Database location. Like set()but also specifies the priority for that data.Applications need not use priority but can order collections by ordinary properties (see Sorting and filtering data). Parameters- 
									newVal: any
- 
									newPriority: string | number | null
- 
									Optional onComplete: (a: Error | null) => void- 
											- 
													Parameters- 
															a: Error | null
 Returns void
- 
															
 
- 
													
 
- 
											
 Returns Promise<void>
- 
									
startAfter 
					- 
							
							Creates a Querywith the specified starting point (exclusive).Using startAt(),startAfter(),endBefore(),endAt()andequalTo()allows you to choose arbitrary starting and ending points for your queries.The starting point is exclusive. If only a value is provided, children with a value greater than the specified value will be included in the query. If a key is specified, then children must have a value greater than or equal to the specified value and a a key name greater than the specified key. Parameters- 
									value: number | string | boolean | nullThe value to start after. The argument type depends on which orderBy*()function was used in this query. Specify a value that matches theorderBy*()type. When used in combination withorderByKey(), the value must be a string.
- 
									Optional key: stringThe child key to start after. This argument is only allowed if ordering by child, value, or priority. 
 Returns Query
- 
									
startAt 
					- 
							
							Creates a Querywith the specified starting point.Using startAt(),startAfter(),endBefore(),endAt()andequalTo()allows you to choose arbitrary starting and ending points for your queries.The starting point is inclusive, so children with exactly the specified value will be included in the query. The optional key argument can be used to further limit the range of the query. If it is specified, then children that have exactly the specified value must also have a key name greater than or equal to the specified key. You can read more about startAt()in Filtering data.Parameters- 
									value: number | string | boolean | nullThe value to start at. The argument type depends on which orderBy*()function was used in this query. Specify a value that matches theorderBy*()type. When used in combination withorderByKey(), the value must be a string.
- 
									Optional key: stringThe child key to start at. This argument is only allowed if ordering by child, value, or priority. 
 Returns Query
- 
									
toJSON
- 
							
							Returns a JSON-serializable representation of this object. Returns ObjectA JSON-serializable representation of this object. 
toString 
					- 
							
							Gets the absolute URL for this location. The toString()method returns a URL that is ready to be put into a browser, curl command, or afirebase.database().refFromURL()call. Since all of those expect the URL to be url-encoded,toString()returns an encoded URL.Append '.json' to the returned URL when typed into a browser to download JSON-formatted data. If the location is secured (that is, not publicly readable), you will get a permission-denied error. Returns stringThe absolute URL for this location. 
transaction
- 
							
							Atomically modifies the data at this location. Atomically modify the data at this location. Unlike a normal set(), which just overwrites the data regardless of its previous value,transaction()is used to modify the existing value to a new value, ensuring there are no conflicts with other clients writing to the same location at the same time.To accomplish this, you pass transaction()an update function which is used to transform the current value into a new value. If another client writes to the location before your new value is successfully written, your update function will be called again with the new current value, and the write will be retried. This will happen repeatedly until your write succeeds without conflict or you abort the transaction by not returning a value from your update function.Note: Modifying data with set()will cancel any pending transactions at that location, so extreme care should be taken if mixingset()andtransaction()to update the same data.Note: When using transactions with Security and Firebase Rules in place, be aware that a client needs .readaccess in addition to.writeaccess in order to perform a transaction. This is because the client-side nature of transactions requires the client to read the data in order to transactionally update it.Parameters- 
									transactionUpdate: (a: any) => anyA developer-supplied function which will be passed the current data stored at this location (as a JavaScript object). The function should return the new value it would like written (as a JavaScript object). If undefinedis returned (i.e. you return with no arguments) the transaction will be aborted and the data at this location will not be modified.- 
											- 
													Parameters- 
															a: any
 Returns any
- 
															
 
- 
													
 
- 
											
- 
									Optional onComplete: (a: Error | null, b: boolean, c: DataSnapshot | null) => voidA callback function that will be called when the transaction completes. The callback is passed three arguments: a possibly-null Error, abooleanindicating whether the transaction was committed, and aDataSnapshotindicating the final result. If the transaction failed abnormally, the first argument will be anErrorobject indicating the failure cause. If the transaction finished normally, but no data was committed because no data was returned fromtransactionUpdate, then second argument will be false. If the transaction completed and committed data to Firebase, the second argument will be true. Regardless, the third argument will be aDataSnapshotcontaining the resulting data in this location.- 
											- 
													Parameters- 
															a: Error | null
- 
															b: boolean
- 
															c: DataSnapshot | null
 Returns void
- 
															
 
- 
													
 
- 
											
- 
									Optional applyLocally: booleanBy default, events are raised each time the transaction update function runs. So if it is run multiple times, you may see intermediate states. You can set this to false to suppress these intermediate states and instead wait until the transaction has completed before events are raised. 
 Returns Promise<TransactionResult>Returns a Promise that can optionally be used instead of the onComplete callback to handle success and failure. 
- 
									
update
- 
							
							Writes multiple values to the Database at once. The valuesargument contains multiple property-value pairs that will be written to the Database together. Each child property can either be a simple property (for example, "name") or a relative path (for example, "name/first") from the current location to the data to update.As opposed to the set()method,update()can be use to selectively update only the referenced properties at the current location (instead of replacing all the child properties at the current location).The effect of the write will be visible immediately, and the corresponding events ('value', 'child_added', etc.) will be triggered. Synchronization of the data to the Firebase servers will also be started, and the returned Promise will resolve when complete. If provided, the onCompletecallback will be called asynchronously after synchronization has finished.A single update()will generate a single "value" event at the location where theupdate()was performed, regardless of how many children were modified.Note that modifying data with update()will cancel any pending transactions at that location, so extreme care should be taken if mixingupdate()andtransaction()to modify the same data.Passing nulltoupdate()will remove the data at this location.Parameters- 
									values: ObjectObject containing multiple values. 
- 
									Optional onComplete: (a: Error | null) => voidCallback called when write to server is complete. - 
											- 
													Parameters- 
															a: Error | null
 Returns void
- 
															
 
- 
													
 
- 
											
 Returns Promise<void>Resolves when update on server is complete. 
- 
									
The last part of the
Reference's path.For example,
"ada"is the key forhttps://<DATABASE_NAME>.firebaseio.com/users/ada.The key of a root
Referenceisnull.// The key of a root reference is null var rootRef = firebase.database().ref(); var key = rootRef.key; // key === null// The key of any non-root reference is the last token in the path var adaRef = firebase.database().ref("users/ada"); var key = adaRef.key; // key === "ada" key = adaRef.child("name/last").key; // key === "last"