基于uid访问Firebase存储映像

时间:2017-05-03 15:26:48

标签: ios swift firebase firebase-authentication firebase-storage

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

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 :(得分: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:" )


                }})}