Index
Properties
Methods
Properties
ref
Returns a Reference
to the Query
's location.
Methods
endAt
-
Creates a
Query
with 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 | null
The 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: string
The 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
Query
with 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
Query
that 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 | null
The 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: string
The 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
Reference
objects are equivalent if they represent the same location and are from the same instance offirebase.app.App
.Two
Query
objects 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 | null
The query to compare against.
Returns boolean
Whether or not the current and provided queries are equivalent.
-
limitToFirst
-
Generates a new
Query
limited 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_added
events. If we have fewer than 100 messages stored in our Database, achild_added
event will fire for each message. However, if we have over 100 messages, we will only receive achild_added
event for the first 100 ordered messages. As items change, we will receivechild_removed
events 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: number
The maximum number of nodes to include in this query.
Returns Query
-
limitToLast
-
Generates a new
Query
object 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_added
events. If we have fewer than 100 messages stored in our Database, achild_added
event will fire for each message. However, if we have over 100 messages, we will only receive achild_added
event for the last 100 ordered messages. As items change, we will receivechild_removed
events 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: number
The 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
Reference
will be removed.Parameters
-
Optional eventType: EventType
One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved." If omitted, all callbacks for the
Reference
will be removed. -
Optional callback: (a: DataSnapshot, b?: string | null) => any
The callback function that was passed to
on()
orundefined
to remove all callbacks.-
-
Parameters
-
a: DataSnapshot
-
Optional b: string | null
Returns any
-
-
-
-
Optional context: Object | null
The 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 event
This event will trigger once with the initial data stored at this location, and then trigger again each time the data changes. The
DataSnapshot
passed 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 event
This 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
DataSnapshot
passed 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, ornull
if it is the first child.child_removed event
This event will be triggered once every time a child is removed. The
DataSnapshot
passed 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 event
This event will be triggered when the data stored in a child (or any of its descendants) changes. Note that a single
child_changed
event may represent multiple changes to the child. TheDataSnapshot
passed 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, ornull
if it is the first child.child_moved event
This event will be triggered when a child's sort order changes such that its position relative to its siblings changes. The
DataSnapshot
passed 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, ornull
if it is the first child.Parameters
-
eventType: EventType
One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved."
-
callback: (a: DataSnapshot, b?: string | null) => any
A 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
null
if it is the first child.-
-
Parameters
-
a: DataSnapshot
-
Optional b: string | null
Returns any
-
-
-
-
Optional cancelCallbackOrContext: ((a: Error) => any) | Object | null
An 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
Error
object indicating why the failure occurred. -
Optional context: Object | null
If provided, this object will be used as
this
when calling your callback(s).
Returns (a: DataSnapshot | null, b?: string | null) => any
The 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
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: EventType
One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved."
-
Optional successCallback: (a: DataSnapshot, b?: string | null) => any
A 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
null
if it is the first child.-
-
Parameters
-
a: DataSnapshot
-
Optional b: string | null
Returns any
-
-
-
-
Optional failureCallbackOrContext: ((a: Error) => void) | Object | null
An optional callback that will be notified if your client does not have permission to read the data. This callback will be passed an
Error
object indicating why the failure occurred. -
Optional context: Object | null
If provided, this object will be used as
this
when calling your callback(s).
Returns Promise<DataSnapshot>
-
orderByChild
-
Generates a new
Query
object 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
startAfter
-
Creates a
Query
with 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 | null
The 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: string
The child key to start after. This argument is only allowed if ordering by child, value, or priority.
Returns Query
-
startAt
-
Creates a
Query
with 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 | null
The 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: string
The 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 Object
A 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 string
The absolute URL for this location.
A
Query
sorts and filters the data at a Database location so only a subset of the child data is included. This can be used to order a collection of data by some attribute (for example, height of dinosaurs) as well as to restrict a large list of items (for example, chat messages) down to a number suitable for synchronizing to the client. Queries are created by chaining together one or more of the filter methods defined here.Just as with a
Reference
, you can receive data from aQuery
by using theon()
method. You will only receive events andDataSnapshot
s for the subset of the data that matches your query.Read our documentation on Sorting and filtering data for more information.