Skip to content

FB4D Reference TQueryParamsHelper

Christoph Schneider edited this page Aug 14, 2024 · 4 revisions

Class Helper TQueryParamsHelper

This class helper extends TQueryParams (TDictionary<string, TStringDynArray>) and can be used for both databases (RT-DB and Firestore). It helps to setup the QueryParams.

Constructor

This constructor supports fluent interface design. You can pass a previously created TQueryParams or nil and always get back a valid TQueryParams.

class function CreateQueryParams(CheckThisInstanceFirst: TQueryParams =
  nil): TQueryParams;

OrderBy

function AddOrderBy(const FieldName: string): TQueryParams;
function AddOrderByType(const TypeName: string): TQueryParams;

Limits

function AddLimitToFirst(LimitToFirst: integer): TQueryParams;
function AddLimitToLast(LimitToLast: integer): TQueryParams;

OrderBy and Filter for equal condition

function AddOrderByAndEqualTo(const FieldName,
  FilterValue: string): TQueryParams; overload;
function AddOrderByAndEqualTo(const FieldName: string;
  FilterValue: integer): TQueryParams; overload;
function AddOrderByAndEqualTo(const FieldName: string;
  FilterValue: extended): TQueryParams; overload;

Paging support

function AddPageSize(PageSize: integer): TQueryParams;
function AddPageToken(const PageToken: string): TQueryParams;

Reference to a Read Transaction (Firestore only)

function AddTransaction(
  Transaction: TFirestoreReadTransaction): TQueryParams;

Examples

Application for Realtime Database:

TQueryParams.CreateQueryParams.AddOrderBy(ColumnName: string).AddLimitToFirst(NumberOfResults: integer);

Application for Firestore Cloud Database:

TQueryParams.CreateQueryParams.AddTransaction(ReadTransaction: TFirestoreReadTransaction).AddPageSize(NumberOfResults: integer);
Clone this wiki locally