IzumiSy/elm-firestore/11.0.1

NOTE: the latest version is 13.0.0

Firestore.Query

An option type for runQuery operation

Query.new
    |> Query.collection "users"
    |> Query.limit 2
    |> Query.offset 2
    |> Query.orderBy "age" Query.Descending
    |> Query.where_
        (Query.compositeFilter Query.And
            (Query.fieldFilter "age" Query.GreaterThanOrEqual (Query.int 10))
            [ Query.fieldFilter "age" Query.LessThanOrEqual (Query.int 40) ]
        )

Definitions

type Query

Data type for query operation

Constructs an empty query

encode : Query -> Value

Encodes query

Basics

offset : Int -> Query -> Query

Sets the number of results to skip.

limit : Int -> Query -> Query

Sets the maximum number of results to return.

collection : String -> Query -> Query

Sets a root collection to query

collectionGroup : String -> Query -> Query

Sets a collection group to query

OrderBy

= Unspecified
| Ascending
| Descending

Ordering direction

orderBy : String -> Direction -> Query -> Query

Sets OrderBy value to query

Where

type Where

Where type.

type FieldOp
= LessThan
| LessThanOrEqual
| GreaterThan
| GreaterThanOrEqual
| Equal
| NotEqual

Operations for FieldFilter.

Array-related operations (eg, NotIn, In, etc...) are currently not supported.

type UnaryOp
= IsNaN
| IsNull
| IsNotNaN
| IsNotNull

Oprations for UnaryFilter

= And

Operations for CompositeFilter

Constructs CompositeFilter

CompositeFilter requires at least one filter, so it has a constructor like non-empty list interface.

Query.compositeFilter Query.And
    (Query.fieldFilter "age" Query.GreaterThanOrEqual (Query.int 10))
    [ Query.fieldFilter "age" Query.LessThanOrEqual (Query.int 40) ]
fieldFilter : String -> FieldOp -> Value -> Where

Constructs FieldFilter

Query.fieldFilter "age" Query.GreaterThanOrEqual (Query.int 20)
unaryFilter : String -> UnaryOp -> Where

Constructs UnaryFilter

Query.unaryFilter "name" Query.IsNull

Sets filter to query

Values

type Value

A value type for querying operation

bool : Bool -> Value
int : Int -> Value
string : String -> Value
timestamp : Posix -> Value