Babac
Babac

Reputation: 941

Parse query containedIn doesn't return any value

Several days I'm trying to crack why my code doesn't work and everything I've tried doesn't give me any result. Heres the deal: There is a Booking class that contains userFrom who made booking

let query = PFQuery(className: "Booking")
        query.whereKey("offer", equalTo: offer.pfObject!)
        if self.typeOfUser == .COOK { //! If user is a Cook
            query.findObjectsInBackgroundWithBlock({ (objects : [PFObject]?, error : NSError?) -> Void in
                if let error = error {
                    print(error.localizedDescription)
                } else {
                    if let objects = objects {
                        self.bookings = objects
                        self.usersIds = [String]()
                        for object in objects {
                            let userFrom = object.objectForKey("userFrom") as? PFObject
                            let userId = userFrom!.objectId! as String
                            self.usersIds.append(userId)
                        }
                        self.getUserInfoForBooking()

                    } else {
                        print("Something went wrong")
                    }
                }
            })
        }

From every user I get objectId and append it to the [String] array. Then I query users with their IDs

    private func getUserInfoForBooking() {
    let userQuery = PFQuery(className: "User")
    userQuery.whereKey("objectId", containedIn: self.usersIds)
    userQuery.findObjectsInBackgroundWithBlock({ (objects : [PFObject]?, error : NSError?) -> Void in
        if let error = error {
            print(error.localizedDescription)
        } else {
            print(objects!)
            if let objects = objects {
                for object in objects {
                    self.users.append(object)
                }
                self.collectionView.reloadData()
            } 
        }
    })
}

In this query I always get an empty array. Whatever I did, whatever I've changed always [] in response :(

Upvotes: 0

Views: 286

Answers (1)

Wain
Wain

Reputation: 119041

This is the wrong way to query users

let userQuery = PFQuery(className: "User")

Because the class name is private. You should be creating the query as

let userQuery = PFUser.query()

Upvotes: 1

Related Questions