2017-05-03 1 views
0

Les données utilisateur de l'application Android ont été enregistrées dans une table Backendless. Je veux récupérer les données utilisateur de la table.Backendless Android: comment récupérer des données utilisateur spécifiques à partir d'une table?

J'ai essayé de chercher avec 'where clause', mais je ne sais pas comment afficher les données trouvées. https://backendless.com/docs/android/doc.html#data_search_with_where_clause

Le code suivant avait une erreur de serveur Backendless 1023.

void onFindContact() { 

    IDataStore<Map> contactStorage = Backendless.Data.of("Contact"); 
    DataQueryBuilder queryBuilder = DataQueryBuilder.create(); 

    // set where clause 
    queryBuilder.setWhereClause("age is not null"); 

    // set related columns 
    queryBuilder.setRelated("address", "phoneNumber"); 

    // request sorting 
    //queryBuilder.setSortBy("name"); 

    //set offset and page size 
    //queryBuilder.setPageSize(20); 
    //queryBuilder.setOffset(40); 

    contactStorage.find(queryBuilder, new AsyncCallback<List<Map>>() { 
     @Override 
     public void handleResponse(List<Map> contactObjects) { 
      Log.i("MYAPP", "Retrieved " + contactObjects.size() + " objects"); 
      Toast.makeText(FindContactActivity.this, "Retrieved " + contactObjects.size() + " objects from Backendless table", Toast.LENGTH_LONG).show(); 

      BackendlessUser user = Backendless.UserService.CurrentUser(); 
      if (user != null) { 
       // get user's phone number (i.e. custom property) 
       String phoneNumber = (String) user.getProperty("phoneNumber"); 
       Toast.makeText(FindContactActivity.this, String.format("phone number: %s", phoneNumber), Toast.LENGTH_LONG).show(); 

       // get user's age (i.e. custom property) 
       String age = (String) user.getProperty("age"); 
       Toast.makeText(FindContactActivity.this, String.format("age: %s", age), Toast.LENGTH_LONG).show(); 

       // get user's address (i.e. custom property) 
       String adress = (String) user.getProperty("address"); 
       Toast.makeText(FindContactActivity.this, String.format("address: %s", adress), Toast.LENGTH_LONG).show(); 
      } 
     } 
     @Override 
     public void handleFault(BackendlessFault fault) 
     { 
      Log.e("MYAPP", "Server reported an error " + fault.getCode());//compile error at 'getMessage' 
      Toast.makeText(FindContactActivity.this,"Backendless Server reported an error "+ fault.getCode(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
    //</Map> //compile error at '</map>' 

    /**** from https://backendless.com/docs/android/doc.html#data_search_with_where_clause 
    * Find all contacts where the value of the "age" property equals 47: 
    * 
    String whereClause = "age = 47"; 
    DataQueryBuilder queryBuilder = DataQueryBuilder.create(); 
    queryBuilder.setWhereClause(whereClause); 


    Backendless.Data.of("Contact").find(queryBuilder, new AsyncCallback<List<Map>>(){ 
       @Override 
       public void handleResponse(List<Map> foundContacts) 
       { 
        // every loaded object from the "Contact" table is now an individual java.util.Map 
       } 
       @Override 
       public void handleFault(BackendlessFault fault) 
       { 
        // an error has occurred, the error code can be retrieved with fault.getCode() 
       } 
    }); 
    */ 
} 

}

+1

Pouvez-vous fournir un exemple de code de ce que vous avez-vous essayé jusqu'ici? – Submersed

+1

o & lien vers une documentation de ce dont vous parlez – Blundell

+0

J'ai essayé d'utiliser des exemples de clause where à l'adresse https://backendless.com/docs/android/doc.html#data_search_with_where_clause – bryonss

Répondre