原子更新后的单元格中的IndexPath

时间:2017-06-10 13:59:17

标签: ios swift swift3 atomic nsindexpath

我有这个功能,它会在每次用户更改其图片时触发,并将获取当前用户的profilePictureUrl并更新与数据库中的currentUser匹配的所有帖子。工作良好!正在做这份工作。如何更新这些特定单元格的indexPath?现在我的单元格图像在更新后是空的。

    var pathToPictures = [Pictures]()
func updateAllImagesOfCurrentUserInDatabase() {

    //refrences
    let ref = FIRDatabase.database().reference()
    let uid = FIRAuth.auth()?.currentUser?.uid

    //match the user ID value stored into posts with current userID and get all the posts of the user
    let update = ref.child("posts").queryOrdered(byChild: "userID").queryEqual(toValue: uid)
    update.observe(FIRDataEventType.value, with: { (snapshot) in
        self.pathToPictures.removeAll()

        if snapshot.value as? [String : AnyObject] != nil {
        let results = snapshot.value as! [String : AnyObject]

        for (_, value) in results {
            let pathToPostPicture = Pictures()

            if let pathToImage = value["pathToImage"] as? String , let postID = value["postID"] as? String {
                pathToPostPicture.postImageUrl = pathToImage
                pathToPostPicture.postID = postID
                self.pathToPictures.append(pathToPostPicture)
                print("Image and POST ID: \(pathToPostPicture.postImageUrl!)")
                print("Post ID is : \(postID)")

                if FIRAuth.auth()?.currentUser?.uid == uid {
                ref.child("Users_Details").child(uid!).child("profileImageUrl").observeSingleEvent(of: .value, with: { (userSnapshot) in
                    print(userSnapshot)

                    let userIMageUrl = userSnapshot.value as! String
                    pathToPostPicture.postImageUrl = userIMageUrl
                    self.pathToPictures.append(pathToPostPicture)
                    print("This is the image path:" + userIMageUrl + String(self.pathToPictures.count))

                    // Update the Database

                    let postIDCount = pathToPostPicture.postID!
                    let updatedUserData = ["posts/\(postIDCount)/pathToImage": pathToPostPicture.postImageUrl!]
                    print("This is THE DATA:" , updatedUserData)
                    ref.updateChildValues(updatedUserData as Any as! [AnyHashable : Any])

                })
                }
                print(self.pathToPictures.count)
            }
            }
        } else {
            print("snapshot is nill - add some data")
        }

        self.collectionView?.reloadData()
    })
}

0 个答案:

没有答案