Ios 使用firebase生成下载链接

Ios 使用firebase生成下载链接,ios,swift,firebase,swift3,firebase-storage,Ios,Swift,Firebase,Swift3,Firebase Storage,我正在创建一个应用程序,允许用户上传图像,然后在文本字段中显示直接链接 下面是负责将图像上传到我的bucket的代码,当用户按下上传按钮时会触发该代码 @IBAction func upload(_ sender: Any) { let imageContained = viewimage.image let storage = Storage.storage() var storageRef = storage.reference() storage

我正在创建一个应用程序,允许用户上传图像,然后在文本字段中显示直接链接

下面是负责将图像上传到我的bucket的代码,当用户按下上传按钮时会触发该代码

    @IBAction func upload(_ sender: Any) {

    let imageContained = viewimage.image

    let storage = Storage.storage()
    var storageRef = storage.reference()
    storageRef = storage.reference(forURL: "bucket link")

    var data = NSData()
    data = UIImageJPEGRepresentation(imageContained!, 0.8)! as NSData
    let dateFormat = DateFormatter()
    dateFormat.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
    let imageName = dateFormat.string(from: NSDate() as Date)
    let imagePath = "images/\(imageName).jpg"

    let mountainsRef = storageRef.child(imagePath)

    let metadata = StorageMetadata()
    metadata.contentType = "image/jpeg"

    mountainsRef.putData(data as Data, metadata: metadata)

如何为用户生成直接链接?

使用以下功能

 func uploadProfilePic(){
        var data = NSData()
        data = UIImageJPEGRepresentation(ivProfile.image!, 0.8)! as NSData
        // set upload path
        let filePath = "\(userid)" // path where you wanted to store img in storage
        let metaData = FIRStorageMetadata()
        metaData.contentType = "image/jpg"

        self.storageRef = FIRStorage.storage().reference()
        self.storageRef.child(filePath).put(data as Data, metadata: metaData){(metaData,error) in
            if let error = error {
                print(error.localizedDescription)
                return
            }else{
                //store downloadURL
                let downloadURL = metaData!.downloadURL()!.absoluteString

            }
        }

    }

使用下面的函数

 func uploadProfilePic(){
        var data = NSData()
        data = UIImageJPEGRepresentation(ivProfile.image!, 0.8)! as NSData
        // set upload path
        let filePath = "\(userid)" // path where you wanted to store img in storage
        let metaData = FIRStorageMetadata()
        metaData.contentType = "image/jpg"

        self.storageRef = FIRStorage.storage().reference()
        self.storageRef.child(filePath).put(data as Data, metadata: metaData){(metaData,error) in
            if let error = error {
                print(error.localizedDescription)
                return
            }else{
                //store downloadURL
                let downloadURL = metaData!.downloadURL()!.absoluteString

            }
        }

    }

带有完成处理程序的上载函数

func uploadMedia(completion: @escaping (_ url: String?) -> Void) { 
    let storageRef = FIRStorage.storage().reference().child("myImage.png")
    if let uploadData = UIImagePNGRepresentation(self.myImageView.image!) {
        storageRef.put(uploadData, metadata: nil) { (metadata, error) in
            if error != nil {
                print("error")
                completion(nil)
            } else {
                completion((metadata?.downloadURL()?.absoluteString)!)) 
                // your uploaded photo url.
            }
       }
 }

希望它有助于完成处理程序的上传功能

func uploadMedia(completion: @escaping (_ url: String?) -> Void) { 
    let storageRef = FIRStorage.storage().reference().child("myImage.png")
    if let uploadData = UIImagePNGRepresentation(self.myImageView.image!) {
        storageRef.put(uploadData, metadata: nil) { (metadata, error) in
            if error != nil {
                print("error")
                completion(nil)
            } else {
                completion((metadata?.downloadURL()?.absoluteString)!)) 
                // your uploaded photo url.
            }
       }
 }

希望能有所帮助

成功了,谢谢。如何在我尝试过的文本字段[downloadURL=getLink.text!]@ahmedalabdulal使用此代码->
textField.text=downloadURL
谢谢,这对我有效[self.getLink.text=downloadURL]它有效,谢谢。如何在我尝试过的文本字段[downloadURL=getLink.text!]@ahmedalabdulal使用此代码->
textField.text=downloadURL
谢谢,这对我有用[self.getLink.text=downloadURL]