- Class represents your schema and contains field names and types.
- Record represents the data you put into your schema.
_id
, user_id
, parent_id
, created_at
, and updated_at
.
Allowed data types: Integer (or Array of Integer); String (or Array of String); Float (or Array of Float); Boolean (or Array of Boolean); Location (Array of [, ]); File; Date.
Visit Key Concepts page to learn the most important QuickBlox concepts.
Before you begin
- Register a QuickBlox account. This is a matter of a few minutes and you will be able to use this account to build your apps.
- Configure QuickBlox SDK for your app. Check out Setup page for more details.
- Create a user session to be able to use QuickBlox functionality. See Authentication page to learn how to do it.
Create class
To start using Custom Objects module, create a class:- Go to QuickBlox Dashboard.
- Follow Custom => Add => Add new class direction. As a result, Add new class popup will appear.
- Enter a class name, add any fields you want.

- Click Create class button to create a new class.

Create records
The easiest way to create a new record from the QuickBlox Dashboard, do the following:- Follow Custom => Current class => Your Class direction.
- Click Add => Add record button and Add new record popup will appear.
- Fill in any fields you want.
- Click Add record button and a new record will be added and shown in the table.
Dart
Argument | Required | Description |
---|---|---|
className | no | Name of a custom object class. |
fields | no | Data fields (Map<String, Object>). |
Dart
Argument | Required | Description |
---|---|---|
className | no | Name of a custom object class. |
objects | no | Custom objects list (List<Map<String, Object>>). |
Retrieve records by IDs
To get records with a particular record ID, use thegetByIds()
method. Set the record ID using the ids
object. Go over Sort operators and Search operators sections to learn about filters and search operators you can use to retrieve records.
Dart
Argument | Required | Description |
---|---|---|
className | yes | Name of a custom object class. |
ids | yes | Custom objects IDs. |
Retrieve records
You can search for records of a particular class. The request below will return records of theTestFlutterClass
class with the version
field containing 1000
value, sorted by the created_at
field in descending order, limited to 50 records on the page, and with 10 records skipped at the beginning.
Dart
Argument | Required | Description |
---|---|---|
sort | no | Specifies sorting criteria for the field. |
filter | no | Specifies filtering criteria for the field. |
skip | no | Skip N records in search results. Useful for pagination. Default (if not specified): 0. |
limit | no | Limit search results to N records. Useful for pagination. Default value: 100. |
Search operators
You can use search operators to get more specific search results. The request below will return records of theFlutterTestClass
class by the flutterTestField
field with a value greater than 10
.
Dart
Search operators | Applicable to types | Description |
---|---|---|
lt | integer, float | Less Than operator. |
lte | integer, float | Less Than or Equal to operator. |
gt | integer, float | Greater Than operator. |
gte | integer, float | Greater Than or Equal to operator. |
ne | integer, float, string, boolean | Not Equal to operator. |
in | integer, float, string | IN array operator. |
or | integer, float, string | All records that contain a value 1 or value 2. |
nin | integer, float, string | Not IN array operator. |
all | array | ALL are contained in array. |
ctn | string | All records that contain a particular substring. |
Sort operators
You can use sort operators to order the search results. The request below will return records of theFlutterTestClass
class sorted by the flutterTestField
field in descending order.
Dart
Sort options | Aplicable to types | Description |
---|---|---|
ascending | All types | Sort results in ascending order by setting the ascending as true. |
descending | All types | Sort results in descending order by setting the ascending as false. |
Update records
To update a single record with a particular record ID, use the code snippet below.Dart
Argument | Required | Description |
---|---|---|
className | yes | Name of a custom object class. |
id | no | Custom object ID. |
fields | no | List of updating fields. |
Dart
Argument | Required | Description |
---|---|---|
className | yes | Name of a custom object class. |
objects | no | Custom objects list (Map<String, Object>). |
Delete records
To delete a single record, use the code snippet below.Dart
Argument | Required | Description |
---|---|---|
className | yes | Name of a custom object class. |
idsList | yes | Custom objects IDs list (List<String>). |
Dart
Argument | Required | Description |
---|---|---|
className | yes | Name of a custom object class. |
idsList | yes | Custom objects IDs list (List<String>). |
Relations
It is possible to create a relation between objects of two different classes via_parent_id
field.
For example, we have the class Rating that contains score
, review
, and comment
fields. We also have a Movie class. So we can create a record of class Rating that will point to the record of the class Movie via its _parent_id
field, so the _parent_id
field will contain the ID of record from class Movie.
This is not a simple soft link. This is actually a hard link. When you delete the Movie class record then all its children (records of class Rating with
_parent_id
field set to the Movie class record ID) will be automatically deleted as well.If you need to retrieve all children, you can retrieve records with the filter
_parent_id=<id_of_parent_class_record>
.