Swift 3,Cant在viewcontroller中创建多个函数吗?

马拉兹·瑞斯(Maraz Reis)

我正在尝试使用Firebase创建一个“登录/注册”屏幕。我创建了一个用于将数据发送到Firebase的快捷类,并将其称为“ DataService”类。我也有登录和注册课程。在“ DataService”类中,我无法创建多个函数,当我尝试创建注册函数时,出现类似“ DataService类型的值”没有成员“ Sign up”的错误但是其他功能可以正常工作。在该类中,我只能有一个函数(DataService)。

DATASERVICE类

  import Foundation
  import Firebase
  import FirebaseAuth
  import FirebaseStorage

let rootRef = FIRDatabase.database().reference()

class DataService {

static let dataService = DataService()

private var _BASE_REF = rootRef
private var _PHOTO_REF = rootRef.child("photos")

var BASE_REF: FIRDatabaseReference {
    return _BASE_REF
}

var PHOTO_REF: FIRDatabaseReference {
    return _PHOTO_REF
}

var storageRef: FIRStorageReference{
    return FIRStorage.storage().reference()
}

var fileUrl: String!



// Share Photo Data

func shareNewPhoto(user: FIRUser, caption: String, data: NSData) {
let filePath = "\(user.uid)/\     (Int(NSDate.timeIntervalSinceReferenceDate))"
 let metaData = FIRStorageMetadata()
    metaData.contentType = "image/jpg"
    storageRef.child(filePath).put(data as Data, metadata: metaData) { (metadata, error) in
        if let error = error {
            print("Error uploading: /\(error.localizedDescription)")

        }

        // Create a Url for data ( Story Photo)

        self.fileUrl = metadata!.downloadURLs![0].absoluteString
        if let user = FIRAuth.auth()?.currentUser {
            let idPhotoRoom = self.BASE_REF.child("PhotoRooms").childByAutoId()
            idPhotoRoom.setValue(["caption": caption, "StoryPhotoUrlFromStorage": self.storageRef.child(metadata!.path!).description, "fileUrl": self.fileUrl])
        }
    }


    // Story Photo (upload and dowload from server)

func fetchDataFromServer(callback:@escaping (StoryPhoto) -> ()) {
    DataService.dataService._PHOTO_REF.observe(.childAdded, with: { (snapshot) in
        let photo = StoryPhoto(key: snapshot.key, snapshot: snapshot.value as! Dictionary<String, AnyObject>)
            callback(photo)

        })



       // Sign Up

func signUp(username: String, email: String, password: String, data: NSData) {
    FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: { (user, error) in
        if let error = error {
            print(error.localizedDescription)
            return
        }

        let changeRequest = user?.profileChangeRequest()
        changeRequest?.displayName = username
        changeRequest?.commitChanges(completion: { (error) in
            if let error = error{
                print(error.localizedDescription)
                return
            }
        })

        let filePath = "profileimage/\(user!.uid)"
        let metaData = FIRStorageMetadata()
        metaData.contentType = "image/jpeg"

        self.storageRef.child(filePath).put(data as Data, metadata: metaData, completion: { (metadata, error) in
            if let error = error {
                print("\(error.localizedDescription)")
                return
            }
            self .fileUrl = metadata?.downloadURLs![0].absoluteString
            let changeRequestPhoto = user!.profileChangeRequest()
            changeRequestPhoto.photoURL = NSURL(string: self.fileUrl) as URL?
            changeRequestPhoto.commitChanges(completion: { (error) in
                if let error = error {
                    print(error.localizedDescription)
                    return
                }else{
                    print("profile uptaded")
                }
            })

            let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
            appDelegate.Login()

        })


    })
}

}


}

}

注册课程在这里,我遇到类似DataService类型的值没有成员“注册”的错误。

// Register Button

@IBAction func RegisterDidTapped(_ sender: AnyObject) {
    guard let email = emailTextField.text, let password = passwordTextField.text, let username = usernameTextField.text else {
        return
    }

    var data = NSData()
    data = UIImageJPEGRepresentation(profileImage.image!, 0.1)! as NSData

    //Signin up


  Here i am getting Error: (Value of type DataService has no member "sign Up")

    DataService.dataService.signUp(username: username, email: email, password: password, data: data)


 }

}
康斯坦丁·克里扎诺夫斯基(Konstantin Kryzhanovsky)

检查正确的打开和关闭{}看起来您的signUp功能在其他功能内。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章