IzumiSy / elm-firestore / 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

new : Query

Constructs an empty query

encode : Query -> Json.Encode.Value

Encodes query

Basics

offset : Basics.Int -> Query -> Query

Sets the number of results to skip.

limit : Basics.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


type Direction
    = 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


type CompositeOp
    = And

Operations for CompositeFilter

compositeFilter : CompositeOp -> Where -> List Where -> Where

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

where_ : Where -> Query -> Query

Sets filter to query

Values


type Value

A value type for querying operation

bool : Basics.Bool -> Value

int : Basics.Int -> Value

string : String -> Value

timestamp : Time.Posix -> Value