2017-07-18 69 views
-1

我无法理解错误是怎么告诉我的。我试图通过使用self和更改类来修复它。仍然不会帮助。需要一个指导,可以帮助理解我到底错过了什么或做错了什么。用户是什么?没有会员'profileimageView'是什么意思?

import UIKit 
import Foundation 
import Firebase 

extension LoginController: UIImagePickerControllerDelegate,UINavigationControllerDelegate{ 
    func handleRegister(){ 
     guard let email = emailTextField.text, let password = passwordTextField.text, let name = nameTextField.text 
      else { 
       print("This form is not valid") 
       return 
     } 

     Auth.auth().createUser(withEmail: email, password: password) { (self, error) in 
      if error != nil { 
       print(error!) 
       return 
      } 
      guard let uid = self?.uid else{ 
       return 
      } 

      //sucessfully authenticated user 
      let storageRef = Storage.storage().reference() 

      // On the following line 
      if let uploadData = UIImagePNGRepresentation(self.profileImageView.image!) { 
       storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in 
        if error != nil{ 
         print(error) 
         return 
        } 
       }) 
      } 

      let ref = Database.database().reference(fromURL: "https://bbooks-96cac.firebaseio.com/") 
      let userReference = ref.child("user").child(uid) 
      let values = ["name": name, "email": email] 
      userReference.updateChildValues(values, withCompletionBlock: { 
       (err, ref) in 
       if err != nil { 
        print(err) 
        return 
       } 
       // print("Saved user successfully into firebase DB") 
      }) 
     } 

     dismiss(animated: true, completion: nil) 
    } 
} 
+1

此代码在哪个类中?显示类声明。 – rmaddy

+0

显示更多编码请.. – chengsam

+0

@rmaddy已更新代码 –

回答

3

首先,你滥用术语self(我很惊讶这里没有错误)。你需要一个更好的变量名:

Auth.auth().createUser(withEmail: email, password: password) { (self, error) in 

我想接下来改变selfuser在此和贯穿:

Auth.auth().createUser(withEmail: email, password: password) { (user, error) in 

其次,user是那么可选的,所以你需要解开它:

if let uploadData = UIImagePNGRepresentation(user!.profileImageView.image!) { 
+0

感谢得到它修复!但有点可疑的可选的东西没有得到原因是有任何文章,可以帮助再次感谢您亲职业兄弟 –

+0

不知道你在问什么。有没有要求_why_这是一个可选的;这是一个可选的,因为这是'createUser'给你的。如果你不知道什么是可选_is_,你需要在尝试继续学习之前学习Swift。 – matt