2017-05-23 5 views
0

Ich versuche, einen gedruckten Artikel zu nehmen und ihn zusammen mit den übrigen Steckdosen in meine Firebase-Datenbank einzufügen. Vielen Dank!Wie füge ich ein gedrucktes Element zur Firebase-Datenbank hinzu?

@objc(imagePickerController:didFinishPickingMediaWithInfo:) func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
{ 
    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     myImageView.image = image 
    } else { 
     //error 
    } 

    self.dismiss(animated: true, completion: nil) 

    let storageRef = FIRStorage.storage().reference().child("myImage.png") 
    if let uploadData = UIImagePNGRepresentation(self.myImageView.image!) { 
     storageRef.put(uploadData, metadata: nil, completion: 
     { 
       (metadata, error) in 
       if error != nil { 
        print("error") 
        return 
       } else { 
        print((metadata?.downloadURL()?.absoluteString)!) 
        //i want to take the line above and insert it into the database 
       } 
     }) 
    }   
} 

@IBAction func addPost(_ sender: Any) { 

    if self.titleText.text != "" && self.authorText.text != "" && self.mainText.text != "" && self.dateText.text != "" { 
     ref?.child("Posts").childByAutoId() 
          .setValue(["Title": titleText.text, 
             "Article": mainText.text, 
             "Author": authorText.text, 
             "Date": dateText.text ]) 

     //insert the download URL above 
     self.performSegue(withIdentifier: "kost", sender: self)  
    } 
} 
+0

Hat meine Antwort Hilfe, vielleicht noch einige weitere Erklärung Ihrer Frage hilfreich – joshLor

+0

für Ihre Frage hier beantwortet werden würde. https://Stackoverflow.com/a/44061967/5878081 –

+0

Mögliches Duplikat von [Hochladen von Image in Firebase Storage and Database] (https://stackoverflow.com/questions/44060518/uploading-image-to-firebase-storage-and (Datenbank) –

Antwort

0

Ich sehe, was Ihr Problem jetzt ist. Sie versuchen, Bilder auf völlig falsche Weise auf den Firebase hochzuladen. Im Fall didFinishPickingMediaWithInfo solltest du nichts mit Firebase machen. Sie sollten nur Ihr UIImageViews-Bild festlegen, um den Wert der Daten zu speichern, die von der Bilderauswahl übergeben werden.

Dann in Ihrer IBAction sollten Sie alles auf Firebase hochladen. Hier ist eine einfache Funktion, die das Bild in die Datenbank laden wird:

func uploadImage(){ 
    if let fileData = UIImageJPEGRepresentation(myImageView.image!, 0.8){ 
    let storageRef = storage.reference().child("images").child("testImage.jpg") 
     storageRef.put(fileData, metadata: nil, completion: { (metadata, error) in 
      if error != nil{ 
       print(error?.localizedDescription ?? "error") 
       return 
      } 
      let downloadURL = metadata?.downloadURL()?.absoluteString 
      // Write the download URL to your Database 
      self.ref?.child("images").setValue(downloadURL) 
     }) 
    }else{ 
     print("error") 
    } 
} 
+0

Diese Aussage * es ist schwierig, Variablen innerhalb einer Firebase-Schließung * zu setzen, ist völlig ungenau. Klassenvariablen können leicht innerhalb einer Schließung gesetzt werden; var_name oder self.myArray.append (snapshot) funktioniert jedes Mal. – Jay

+0

Ich habe die Antwort aktualisiert, ich habe gerade diese Zeile gelöscht – joshLor

Verwandte Themen