¿Cómo cargar la foto de perfil de los usuarios y cómo obtener esa foto de perfil de otro dispositivo de usuario?

Tengo un requisito, digamos que hay 3 usuarios para mi aplicación. Quiero agregar una imagen (propósito de foto de perfil) a cada usuario para que esta imagen pueda ser visible para otros dos usuarios que estén usando la misma aplicación. Al igual que las fotos de perfil de WhatsApp. Entonces para este propósito hice las siguientes cosas.

Paso 1 :Conectado como Usuario1 Luego agregué este código para cargar el archivo de imagen. Después de iniciar sesión con las credenciales de Usuario1 e hice la Propiedad pública como SÍ mientras cargaba el archivo.

NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"arrow.png"]);

[QBRequest TUploadFile:imageData fileName:@"arrow.png" contentType:@"image/png" isPublic:YES successBlock:^(QBResponse *response, QBCBlob *blob) {

} statusBlock:^(QBRequest *request, QBRequestStatus *status) {
} errorBlock:^(QBResponse *response) {
}];  

Paso 2 :Iniciado sesión como Usuario2

Entonces me gustó, estoy buscando todos los usuarios que pertenecen a mi aplicación. utilizando

QBGeneralResponsePage *responsePage = [QBGeneralResponsePage responsePageWithCurrentPage:currentPage perPage:perPage];

[QBRequest usersForPage:responsePage successBlock:^(QBResponse *response, QBGeneralResponsePage *page, NSArray *users) {

    weakSelf.allUsers = [users mutablecopy]
    [weakSelf.tableView reloadData];

} errorBlock:^(QBResponse *response) {

}];

Paso 3: ahora tengo todos los usuarios, así que estoy haciendo una iteración para encontrar la ID de blob de los usuarios.

    QBUUser *user = (QBUUser *)self.allUsers[indexPath.row];


if (user.blobID != 0) {

    [QBRequest downloadFileWithID:user.blobID successBlock:^(QBResponse *response, NSData *fileData) {

        UIImage *img=[UIImage imageWithData:fileData];
        [cell.imageView setImage:img];

    } statusBlock:^(QBRequest *request, QBRequestStatus *status) {

    } errorBlock:^(QBResponse *response) {

    }];
}

Pero el problema aquí es que no obtengo ningún blobID con User1 significablobID del usuario1 como 0(todos los usuarios blobID como 0), pero durante la carga fue exitosa y obtuve blobID después de cargar el archivo usando User1 como iniciado sesión.

Pero cuandoMe conecté como usuario2 o Usuario3 no muestra ningún blobID asociado con user1. E hice público como Sí mientras cargaba. ¿Es esta la forma correcta de hacer o algún error que estoy haciendo por favor hágamelo saber?