2017-07-18 70 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