1
votes

@IBAction func shareButton(sender: AnyObject) {

    //Social Share Buttons..

        let shareActionsheet = UIAlertController(title: "Share with", message: nil, preferredStyle: .ActionSheet)
    //Facebook
    let Facebook = UIAlertAction(title: "Facebook", style: .Default){(Alert:UIAlertAction!) -> Void in
    let shareFacebook : SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
        //screenShot
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(306, 441.5), false, 0)
        self.view.drawViewHierarchyInRect(CGRectMake(-35, -35, self.view.bounds.size.width, self.view.bounds.size.height), afterScreenUpdates: true)
        let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
        //screenShot finish

//creat screenshot image
//shareFacebook.addImage(image)

        self.presentViewController(shareFacebook, animated: true, completion: nil)


        if let user = FIRAuth.auth()?.currentUser{



        //dosya upload - servise referans sağla..
        let storage = FIRStorage.storage()

        //referans yolu
        let storageRef = storage.referenceForURL("gs://creawo-80503.appspot.com")

        let data: NSData = NSData()
        // Create a reference to the file you want to upload
        let riversRef = storageRef.child("\(self.user!.uid+"/share_pic.jpg")/")

        // Upload the file to the path "images/rivers.jpg"
        let uploadTask = riversRef.putData(data, metadata: nil) { metadata, error in
            if (error != nil) {
                // Uh-oh, an error occurred!
            } else {

I showed the path and the file creation. have the alert is taking a screenshot in the image. I want to install the firebase // Metadata contains file metadata such as size, content-type, and download URL.

I couldn't find a solution about this place        
let downloadURL = metadata!.downloadURL()
            }
        }

}

1

1 Answers

1
votes
@IBAction func postAd(sender: AnyObject) {
    self.name = self.textField.text!
    self.category = (self.chooseButton.titleLabel?.text)!
    self.subcat = self.subcategory.text!

    if (self.name != "" && self.category != "" && self.subcat != ""){

        self.price = Int(self.priceField.text!)!
        self.transaction = (self.transactionButton.titleLabel?.text
        )!

        let book = ["productId": self.productId,
                    "name": self.name,
                    "parentId": self.parentId,
                    "price": self.price,
                    "transaction":self.transaction,
                    "category":self.category,
                    "subcat":self.subcat]
        let childUpdates = ["products/\(productId)": book]


        let data: NSData = UIImageJPEGRepresentation(imagePreview.image!, 0.8)!

        // Create a reference to the file you want to upload
        let metadata = FIRStorageMetadata()
        metadata.contentType = "image/jpeg"
        // Upload the file to the path "images/rivers.jpg"
        let uploadTask = storageRef.child("\(productId)").putData(data, metadata: nil) { metadata, error in
            if (error != nil) {
                // Uh-oh, an error occurred!
                print("Error")
            } else {
                print("Successfully posted")
                // Metadata contains file metadata such as size, content-type, and download URL.
                let downloadURL = metadata!.downloadURL()
                print(downloadURL)
            }
        }
        print(uploadTask)


        self.ref.updateChildValues(childUpdates)

        self.performSegueWithIdentifier("productToHome", sender: self)
    }
    else{
        let alert:UIAlertController = UIAlertController(title: "Fill all details", message: "Please Enter all details", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
        self.presentViewController(alert, animated: true, completion: nil)
        print("Fill all the details")
    }
}

I am uploading the details of the book in my database. You can use the 'metadata' part as i have done it. Here 'imagePreview' contains the image picked from imagePicker. Function to pick the image is given below.

//Internal function to select image and preview it in Image View
// MARK: - UIImagePickerControllerDelegate Methods
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo editingInfo: [String : AnyObject]) {
    if let pickedImage = editingInfo[UIImagePickerControllerOriginalImage] as? UIImage {
        imagePreview.contentMode = .ScaleAspectFit
        imagePreview.image = pickedImage
    }
    dismissViewControllerAnimated(true, completion: nil)
}

func imagePickerControllerDidCancel(picker: UIImagePickerController) {
    dismissViewControllerAnimated(true, completion: nil)
}
//Image Viewer Ends