从 Firebase 实时数据库中检索数据以显示 I UIImage

Retrieve data from Firebase Realtime Database to display I UIImage

我想知道如何在 Firebase Realtime 中从 link 检索图像。我已经在我的应用程序中设置了 UIImageView 并将其 link 编辑到我的 ViewController,我添加的代码怎么没有给我错误,但它没有显示任何东西。

我的viewcontroller

let userID = Auth.auth().currentUser?.uid
Database.database().reference().child("Users").child(userID!).child("Total Progress").observeSingleEvent(of: .value, with: { snapshot in
    if let url = snapshot.value as? String {
        URLSession.shared.dataTask(with: URL(string: url)!) { [self] data, response, error in
            if error == nil {
                let image = UIImage(data: data!)
                financialLiteracy.image = image
            }
        }.resume()
    }
})

我的 Firebase 实时数据库

Realtime Database

let userID = Auth.auth().currentUser?.uid
    Database.database().reference().child("Users").child(userID!).child("Total Progress").observeSingleEvent(of: .value, with: { snapshot in
        if let url = snapshot.value as? String {
            URLSession.shared.dataTask(with: URL(string: url)!) { [self] data, response, error in
                if let data = data {
                    DispatchQueue.main.async {
                        let image = UIImage(data: data)
                        self.financialLiteracy.image = image
                    }
                }
                if let error = error {
                    print(error.localizedDescription)
                }
            }.resume()
        }
    })

使用主线程进行 ui 更新 第二种获取方式

 let userID = Auth.auth().currentUser?.uid
        Database.database().reference().child("Users").child(userID!).child("Total Progress").observeSingleEvent(of: .value, with: { snapshot in
            DispatchQueue.global(qos: .background).async {
                if let urlstring = snapshot.value as? String,
                   let url = URL(string: urlstring) {
                    if let data = try? Data(contentsOf: url) {
                        
                        DispatchQueue.main.async {
                            let image = UIImage(data: data)
                            self.financialLiteracy.image = image
                        }
                        
                    }
                    
                }
            }
            
        }