首页 文章

基于uid访问Firebase存储映像

提问于
浏览
0

我有一个应用程序,我将每个用户 Profiles 图片存储在firebase存储中 . 这是我用来存储 Profiles 图片的路径:

FIRStorage.storage().reference(forURL: "gs://gsignme-15916.appspot.com").child(user.uid+"/profile_pic.jpg")

enter image description here

enter image description here

我还使用他们的url将图像存储在firebase数据库中 . 但是当我尝试使用此代码访问配置文件图片时 .

if (post["uid"] as? String) != nil {

               let imageRef = FIRStorage.storage().reference().child((uid)!+"/profile_pic.jpg")


                imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
                    if error == nil {

                        let image = UIImage(data: data!)
                        cell.UserImg.image = image

                        cell.UserImg.layer.cornerRadius = 10
                        cell.UserImg.clipsToBounds = true



                    }else {

                        print("Error downloading image:" )


                    }})}

而且我更改了用户,图片更改为当前用户的图片,而不是发布帖子的用户 . 我知道问题在于如何检索图像,但我不知道如何根据不是当前登录用户的uid检索图像 .

1 回答

  • 0

    这应该是相当简单的 - 尽管你应该添加一些检查,以确保你不会为uidPoster结束一个空字符串

    if (post["uid"] as? String) != nil {
               let uidPoster = post["uid"] as? String
               let imageRef = FIRStorage.storage().reference().child((uidPoster)!+"/profile_pic.jpg")
    
    
                imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
                    if error == nil {
    
                        let image = UIImage(data: data!)
                        cell.UserImg.image = image
    
                        cell.UserImg.layer.cornerRadius = 10
                        cell.UserImg.clipsToBounds = true
    
    
    
                    }else {
    
                        print("Error downloading image:" )
    
    
                    }})}
    

相关问题