Когда я вызываю метод .getData с помощью Firebase Storage, он пропускается? - PullRequest
0 голосов
/ 24 апреля 2020
func getPost() {
        postCollectionRef.getDocuments { (snapshot, error) in
            if let err = error {
                debugPrint("Error getting the data from firebase.")
            } else {
                for document in (snapshot?.documents)! {
                    let _data = document.data()
                    let _image = _data["image"] as? String ?? "Anonymous"
                    let _username = _data["username"] as? String ?? "Anonymous"
                    let _location = _data["location"] as? String ?? "Anonymous"
                    let _description = _data["description"] as? String ?? "Anonymous"
                    let _quantity = _data["quantity"] as? String ?? "Anonymous"
                    let _phone = _data["phone"] as? String ?? "Anonymous"
                    let _date = _data["date"] as? Date ?? Date()

                    // Points to the storage
                    let _storageRef = storage.reference()

                    // Points to the images folder
                    let _folderRef = _storageRef.child("images")

                    // Points to the the image under the images folder
                    let _fileRef = _folderRef.child("\(_image).jpg")

                    // File path is "images/whatever.jpg
                    let path = _fileRef.fullPath

                    var loadedImage: UIImage!

                    var temp: [UIImage] = []

//                    _storageRef.child("images/\(_image).jpg")

                    //get the associated post image
                    _fileRef.getData(maxSize: 10 * 1024 * 1024) { (data, error) in
                        // Create a UIImage, add it to the array
                        if let error = error {
                            print(error)
                        } else {
                            let loadedImage = UIImage(data: data!)
                            temp.append(loadedImage!)
                        }

                    }

Когда я запускаю этот код для загрузки изображения из хранилища Firebase, он пропускает строку _fileRef.getData, и я не могу получить изображение из хранилища Firebase. Кто-нибудь знает, почему он пропустит эту строку вместо go внутри нее и выполнит оператор if else?

Редактировать: Когда я устанавливаю точку останова на if let error = error, он на самом деле добавляет изображение к временному массиву! Однако, когда я пытаюсь выйти из закрытия _fileRef.getData, он продолжает переносить меня в разные файлы, но не позволяет мне шагнуть вперед. Сначала он переносит меня в FIRStorageReference.m, если я пытаюсь перешагнуть через этот файл, он переводит меня в 0 _dispatch_call_block_and_release, и это в значительной степени просто продолжается вечно и продолжает переходить в разные файлы. Это должно быть, почему строка не выполняется, кто-нибудь знает, почему это произойдет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...