You can do it with CustomObjects module for example.
Let's start with Android CustomObjects example http://quickblox.com/developers/SimpleSample-customObjects-android
1) Create class with name FriendsList with one field - friendsIDs (array of int) - this guide shows how to create class http://quickblox.com/developers/SimpleSample-customObjects-android#Add_Custom_Data_structure_to_your_application
2) When UserA adds UserB to friends - put UserB id to friendsIDs field.
QBCustomObject co = new QBCustomObject();
co.setClassName("FriendsList");
HashMap<String, Object> fields = new HashMap<String, Object>();
fields.put("push[friendsIDs][]", "788"); // 788 id UserB id
co.setFields(fields);
co.setCustomObjectId("502f7c4036c9ae2163000002");
QBCustomObjects.updateObject(co, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
QBCustomObjectResult updateResult = (QBCustomObjectResult) result;
QBCustomObject qbCustomObject = updateResult.getCustomObject();
Log.d("Updated friends list: ",qbCustomObject.toString());
} else {
Log.e("Errors",result.getErrors().toString());
}
}
});
3) To request friends list:
QBCustomObjectRequestBuilder requestBuilder = new QBCustomObjectRequestBuilder();
requestBuilder.eq("user_id", "222"); // 222 is your user id
QBCustomObjects.getObjects("Movie", requestBuilder, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
QBCustomObjectLimitedResult coresult = (QBCustomObjectLimitedResult) result;
ArrayList<QBCustomObject> co = coresult.getCustomObjects();
Log.d("friends list: ", co.toString());
} else {
Log.e("Errors",result.getErrors().toString());
}
}
});