根据 uid 访问 Firebase 存储图像

Access Firebase storage images based on uids

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

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

当我尝试使用此代码访问个人资料图片时,我还使用它们 url.But 将图像存储在 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:" )


                    }})}

而且我换了用户,图片变成了当前用户的图片,而不是制作post的用户。我知道问题在于我如何检索图像,但我不确定如何根据不是当前登录用户的 uid 检索图像。

这应该相当简单 - 虽然您应该添加一些检查以确保您不会以空字符串结束 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:" )


                }})}