使用未解析的标识符'元数据'

时间:2017-11-11 18:57:28

标签: ios swift firebase firebase-realtime-database

我有这个代码,但我有一个问题,因为它写了我使用未解析的标识符'元数据',提前谢谢!我是Xcode的初学者,所以请好好解释一下!

我在一个youtube教程中得到了这个,来自zero2launch!

import UIKit
import FirebaseDatabase
import FirebaseAuth
import FirebaseStorage




class SignUpViewController: UIViewController {

    @IBOutlet weak var ProfileImage: UIImageView!
    @IBOutlet weak var UsernameField: UITextField!
    @IBOutlet weak var PasswordField: UITextField!
    @IBOutlet weak var Mailfield: UITextField!

    var selectedImage: UIImage?

    @IBAction func dismiss_onClick(_ sender: Any) {
        dismiss(animated: true, completion: nil)
    }

    override func viewDidLoad() {
        super.viewDidLoad()



        ProfileImage.layer.cornerRadius = 40
        ProfileImage.clipsToBounds = true

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(SignUpViewController.handleSelectProfileImageView))
        ProfileImage.addGestureRecognizer(tapGesture)
        ProfileImage.isUserInteractionEnabled = true





    }

    @objc func handleSelectProfileImageView() {
        let pickerController = UIImagePickerController()
        pickerController.delegate = self
        present(pickerController, animated: true, completion: nil)


    }


    @IBAction func SignUpButton(_ sender: Any) {
        Auth.auth().createUser(withEmail: Mailfield.text!, password: PasswordField.text! , completion:{(user: User?, error:Error?) in
            if error != nil {
                print(error!.localizedDescription)
                return
            }

            let uid = user?.uid
            let storageRef = Storage.storage().reference(forURL: "gs://gibble-2bed4.appspot.com").child("profile_image").child(uid!)
            if let profileImg = self.selectedImage, let imageData = UIImageJPEGRepresentation(profileImg, 0.1){
                storageRef.putData(imageData, metadata: nil, completion: { (matadata, error) in
                if error != nil{
                    return
                }

                let profileImageUrl = metadata?.downloadURL()?.absoluteString

                let ref = Database.database().reference()
                let usersReference = ref.child("users")
                let newUserReference = usersReference.child(uid!)
                newUserReference.setValue(["username" : self.UsernameField.text!, "email": self.Mailfield.text!, "profileImageUrl": profileImageUrl])


            })

            }


            })







    }

    }




extension SignUpViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
       print("did Finish picking Media")
        if let image = info["UIImagePickerControllerOriginalImage"] as? UIImage{
            selectedImage = image
            ProfileImage.image = image
            dismiss(animated: true, completion: nil)

        }
        print(info)

    }



}

1 个答案:

答案 0 :(得分:1)

您在以下代码中的闭包中初始化了元数据而不是元数据(您要使用的元数据)(第一行:"(matadata,error)"):

 storageRef.putData(imageData, metadata: nil, completion: { (matadata, error) in
 if error != nil{
     return
 }

 let profileImageUrl = metadata?.downloadURL()?.absoluteString

最后一行中的元数据应该是数据元素,或者您必须在第一行中更改它。

相关问题