Backendless Android (BackendlessUser to BackendlessUser Relations)

I tried to connect BackendlessUsers as “friends.” However, I kept on getting errors. Here is the code:

Backendless.Data.of(BackendlessUser.class).find(dataQuery, new AsyncCallback<BackendlessCollection<BackendlessUser>>() {
 @Override
 public void handleResponse(BackendlessCollection<BackendlessUser> users) {
 ArrayList<BackendlessUser> friends = new ArrayList<BackendlessUser>();
 BackendlessUser currentUser = Backendless.UserService.CurrentUser();
 users.setPageSize(100);
 List<BackendlessUser> page = users.getCurrentPage();
 mUsernames.clear();
 Iterator<BackendlessUser> iterator = page.iterator();
 while(iterator.hasNext()) {
 BackendlessUser user = iterator.next();
 friends.add(user);
 mUsernames.add(user.getProperty("username").toString());
 }
 currentUser.setProperty("friend", friends);
 Backendless.Data.of(BackendlessUser.class).save(currentUser, new AsyncCallback<BackendlessUser>() {
 @Override
 public void handleResponse(BackendlessUser backendlessUser) {
 }
 @Override
 public void handleFault(BackendlessFault backendlessFault) {
 Log.i(TAG, backendlessFault.toString());
 }
 });
 }
 @Override
 public void handleFault(BackendlessFault fault) {
 Log.e(TAG, fault.toString());
 }
});

Hello!
What BackendlessFault do you receive?
Thank I you!
Alex

I’m currently trying to print out the BackendlessFault, but I get the BackendlessException:

BackendlessException{ code: ‘Internal client exception’, message: ‘null’ }

I cannot reproduce this at the moment. Here is my code ( it’s very close to yours ):

private static void test() 
{ 
 Backendless.UserService.login( "example@test.com", "password" ); 
 
 BackendlessDataQuery dataQuery = new BackendlessDataQuery(); 
 dataQuery.setPageSize( 100 ); 
 
 Backendless.Data.of( BackendlessUser.class ).find( dataQuery, new AsyncCallback<BackendlessCollection<BackendlessUser>>() 
 { 
 @Override 
 public void handleResponse( BackendlessCollection<BackendlessUser> users ) 
 { 
 
 ArrayList<BackendlessUser> friends = new ArrayList<BackendlessUser>(); 
 
 BackendlessUser currentUser = Backendless.UserService.CurrentUser(); 
 
 users.setPageSize( 100 ); 
 
 List<BackendlessUser> page = users.getCurrentPage(); 
 
 Iterator<BackendlessUser> iterator = page.iterator(); 
 
 while( iterator.hasNext() ) 
 { 
 BackendlessUser user = iterator.next(); 
 friends.add( user ); 
 } 
 
 currentUser.setProperty( "friend", friends ); 
 
 Backendless.Data.of( BackendlessUser.class ).save( currentUser, new AsyncCallback<BackendlessUser>() 
 { 
 @Override 
 public void handleResponse( BackendlessUser backendlessUser ) 
 { 
 System.out.println( "User saved!" ); 
 } 
 
 @Override 
 public void handleFault( BackendlessFault backendlessFault ) 
 { 
 System.out.println( backendlessFault.toString() ); 
 } 
 } ); 
 }


I don’t understand what does your dataQuery look like. Can you try to reproduce the problem with my code and show part of code where you initialise your query? Also debug please your code to find out which row has code throwing exception.

Alexsandr , I have a similar problem, as a results of your code I got ‘Unable to save object - invalid data type for properties - friends. You can change the property type in developer console.’

Mladen,

Could you zip up your project and send it to me via Dropbox or Google Drive? My email is mark@backendless.com

Regards,
Mark

Hi, Mladek!
Thank you for your info. The error you get is a reason of known bug which is already fixed and will be released soon. Bug Jeffrey gets another issue and I want to find out why.
Best regards, Alex

After using your code, I no longer have my error, but I have Mladen’s.

I get the error: “BackendlessFault{ code: ‘1007’, message: ‘Unable to save object - invalid data type for properties - friends. You can change the property type in developer console.’ }”

When will the updated JAR be released? If possible, could the JAR be attached here?

This is my data query:

BackendlessDataQuery dataQuery = new BackendlessDataQuery();
QueryOptions queryOptions = new QueryOptions();
queryOptions.addSortByOption("username ASC");
dataQuery.setQueryOptions(queryOptions);

Jeffrey, the problem was not in sdk, but on server side.

Oh, alright. Thanks. Why was my code not working though? I didn’t notice any major differences.

Just wondering, was the fix released?

No. not yet