How to retrieve a Backendless user with an Async method?

I have the following working synchronous func:

class UserNetworkRequest {
class func getUserByEmail(email: String) -> BackendlessUser {
let whereClause = "email = '\(email)'"
let dataQuery = BackendlessDataQuery()
dataQuery.whereClause = whereClause
let user = Backendless.sharedInstance().persistenceService.find(BackendlessUser.ofClass(), dataQuery:dataQuery) as BackendlessCollection
var error: Fault?
var retrievedUser: BackendlessUser?
if error == nil {
if let users = user.data {
print("user: \(users[0])")
retrievedUser = users[0] as? BackendlessUser
}
}
else {
print("Server reported an error: \(error)")
}
return retrievedUser!
}
}

And I’d like to make it asynchronous. I don’t understand why my attempt below is not working? It never executes the response handler (e.g. line 9 is never printed).

class UserNetworkRequest {
class func getUserByEmail(email: String, success: (user : BackendlessUser) -> Void, failure: () -> Void) {
let whereClause = "email = '\(email)'"
let dataQuery = BackendlessDataQuery()
dataQuery.whereClause = whereClause
Backendless.sharedInstance().persistenceService.find(BackendlessUser.ofClass(),
dataQuery: dataQuery,
response: { (result: BackendlessCollection!) -> Void in
print("inside response: \(result.getCurrentPage())")
if let users = result.getCurrentPage() as? [BackendlessUser] {
let user = users[0]
success(user: user)
}
},
error: { (fault: Fault!) -> Void in
print("fServer reported an error: \(fault)")
failure()
})
}
}

Hi, Stijn
Firstly, I would like to clarify what the development stack do you use?
I mean languages, frameworks, version of the Backendless SDK, etc.
Regards Ilya.

I’m using only Swift and the Backendless SDK version 3.0

Hi, Stijn.

Do these examples work for you?

Yes, these examples do work for me. In fact I already have some other working async backendless function in my project. It’s strange, I really don’t understand why this function doesn’t work…

Hi Stijn,

I checked your func with my app, it works for me.
Maybe the situation is changed? Please check it with the latest Backendless SDK (pod 3.0.32 release). Let us know how it works for you.

Regards,
Slava