iOS Firebase - проблема с получением URL фотографии (неразрешенный идентификатор) - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь получить URL фотографии, которую выбирает пользователь, и затем отправить ее в Firebase.Я получаю эту ошибку в последней строке: Использование неразрешенного идентификатора 'profileImageUrl';Вы имели в виду 'profileImage'?

@IBAction func signUpBtn(_ sender: Any) {
    Auth.auth().createUser(withEmail: emailTextField.text!, password: passwordTextField.text!, completion: { (user, error) in
        if error != nil {
            print("error")
            return
        }


        let storageRef = Storage.storage().reference(forURL: "gs://justforpractice.appspot.com").child("profile_image").child(userID)
        if let profileImg = self.selectedImage, let imageData = self.selectedImage?.jpegData(compressionQuality: 0.1){
            storageRef.putData(imageData, metadata: nil, completion: { (metadata, error) in
                if error != nil {
                    return
                }


                storageRef.downloadURL { (url, error) in
                    guard let profileImageUrl = url else {
                        // An error occurred!
                        return
                    }
                }

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

            })
        }
    })
}

1 Ответ

0 голосов
/ 21 ноября 2018

Вы должны поместить свой код в закрывающее окно storageRef.downloadUrl, чтобы иметь доступ к развернутому url:

storageRef.downloadURL { (url, error) in
    guard let profileImageUrl = url else {
        // An error occurred!
        return
    }

    let ref = Database.database().reference()
    let usersReference = ref.child("users")
    let newUserReference = usersReference.child(userID)
    newUserReference.setValue(["username": self.usernameTextField.text!, "email": self.emailTextField.text!, "profileImageUrl": profileImageUrl])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...