QuickBlox Documentation

QuickBlox provides powerful Chat API and SDK to add real-time messaging and video calls to your web and mobile apps. Learn how to integrate QuickBlox across multiple platforms.

Users

Learn how to manage your users with QuickBlox.

🚧

This is our documentation for beta version of QuickBlox Flutter SDK. Please contact our Customer Support Team to provide your feedback, suggestions, and requests to improve this page.

The user module manages all things related to user accounts handling, authentication, account data, password remind, etc.

Visit our Key Concepts page to get an overall understanding of the most important QuickBlox concepts.

Before you begin

  1. 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.
  2. Configure QuickBlox SDK for your app. Check out our Setup page for more details.
  3. Create a user session to be able to use QuickBlox functionality. See our Authentication page to learn how to do it.

Create user

Create a user using the code snippet below. Only login (or email) and password are required. Other fields are optional.

String login = "chrispeterson";
String password = "superPassword";
String email = "[email protected]";
int blobId = 34253543;
int externalUserId = 2398734;
int facebookId = 2928734;
int twitterId = 92374392;
String fullName = "John Smith";
String phone = "+380772342381";
String webSite = "www.moo.com";
String customData = "";
String tagList = "";

try {
  QBUser? user = await QB.users.createUser(login, password, email, blobId: blobId, externalUserId: externalUserId, facebookId: facebookId, twitterId: twitterId, fullName: fullName, phone: phone, website: website, customData: customData, tagList: tagList);
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Argument

Required

Description

login

yes

User login.

password

yes

User password.

email

no

User email.

blobId

no

User blob ID.

externalUserId

no

User external ID.

facebookId

no

User facebook ID.

twitterId

no

User twitter ID.

fullName

no

User full name.

phone

no

User phone.

website

no

User website.

customData

no

User custom data.

tagList

no

User tag list.

Retrieve users

Retrieve users by ID

To get a list of users by ID for a current account, use the following code snippet.

QBFilter qbFilter = new QBFilter();
qbFilter.field = QBUsersFilterFields.ID;
qbFilter.operator = QBUsersFilterOperators.IN;
qbFilter.type = QBUsersFilterTypes.NUMBER;

try {
  List<QBUser> userList = await QB.users.getUsers(
      sort: qbSort, 
      filter: qbFilter, 
      page: page, 
      perPage: perPage);
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Argument

Required

Description

qbSort

no

Parameter for sorting users.

qbFilter

no

Parameter for filtering users.

page

no

Current page.

perPage

no

Quantity of users per page.

Retrieve users by full name

To get a list of users by full name for a current account, use the following code snippet.

QBFilter qbFilter = new QBFilter();
qbFilter.field = QBUsersFilterFields.FULL_NAME;
qbFilter.operator = QBUsersFilterOperators.IN;
qbFilter.type = QBUsersFilterTypes.STRING;

try {
  List<QBUser> userList = await QB.users.getUsers(
      sort: qbSort, 
      filter: qbFilter, 
      page: page, 
      perPage: perPage);
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Argument

Description

Description

qbSort

no

Parameter for sorting users.

qbFilter

no

Parameter for filtering users.

page

no

Current page.

perPage

no

Quantity of users per page.

Retrieve users by tag

To get a list of users by tag for a current account, use the following code snippet.

List<String> tags = new List();
tags.add("test");

try {
  List<QBUser> userList = await QB.users.getUsersByTag(
    tags,
    page: page, 
    perPage: perPage
  );
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Argument

Required

Description

tags

yes

An array of tags. Min: 1.

page

no

Current page. Default: 1.

perPage

no

A number of users per page. Min: 1. Default: 100.

Update user

Update a user profile by calling the updateUser() method. If you want to change your password, you need to provide 2 parameters: password and newPassword. The updated user entity will be returned. You can also update any other field of the user using the updateUser() method. Thus, the snippet below shows how to update a tagList and customData fields.

String login = "chrispeterson";
String customData = "";
String tagList = "tagOne, tagTwo";

try {
  var someObject = {};
  someObject["name"] = "John Smith";
  someObject["age"] = "31";
  someObject["city"] = "New York";
    
  String customData = json.encode(someObject);
  
  QBUser? user = await QB.users.updateUser(login, customData: customData, tagList: tagList);
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Argument

Required

Description

login

yes

User login.

customData

no

User custom data. Should be a String. You can convert any data types to String, for example, JSON, XML , etc.

tagList

no

User tags. A comma separated String without any spaces. A tag should contain alphanumeric characters and start with a letter. For example, the "tagOne" format is correct while the "tag one" format is incorrect.

If more that 10 tags are provided, an error is returned: tag list should contain maximum 10 tags.

Set user avatar

To set a user avatar, just upload a file to the QuickBlox cloud storage and connect it to the user.

To upload the file to the QuickBlox cloud storage, call the upload() method and pass the imageFileUrl to it. The imageFileUrl is a path to the file in the device filesystem. Now that the file is uploaded, get the ID of the uploaded file.

To connect the file to the user, set the ID of the uploaded file to the blobId field of the user and call the updateUser() method. As a result, the user avatar gets updated.

String imageFileUrl = "content://data/image.jpg";
String login = "chrispeterson";
int blobId = 324987234;

try {
  QBFile? file = await QB.content.upload(imageFileUrl);
  if (file != null){
    int blobId = file!.id;
    QBUser? updatedUser = QB.users.updateUser(login, blobId: blobId);
  }
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Pass the following arguments to the updateUser() method:

Argument

Required

Description

userLogin

yes

User login.

blobId

no

User blob ID.

Now, other users can get access to your avatar by calling the getPrivateURL() method. As a result, you will receive a private URL in the response. See this section to learn more about file URLs.

// get access to the avatar that was set in user's "blobId" property
int avatarFileId = user.blobId;

try {
  QBFile? file = await QB.content.getInfo(avatarFileId);
  if (file != null){
    String uid  = file!.uid;
    String? fileUrl = await QB.content.getPrivateURL(uid);
  }
} on PlatformException catch (e) {
  // Some error occurred, look at the exception message for more details
}

Updated 15 days ago


What's Next

Chat

Users


Learn how to manage your users with QuickBlox.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.