Ios 将Firebase图像显示到阵列中

Ios 将Firebase图像显示到阵列中,ios,swift,firebase,firebase-storage,Ios,Swift,Firebase,Firebase Storage,我想将Firebase中的图像显示到我的收藏视图中。我不知道如何从Firebase获得正确的节点来访问images分支。有些用户最多有5个图像,但有些用户根本没有图像分支。这是我的firebase数据结构 这是你需要做的 获取对图像节点的引用 使用库(如翠鸟)下载并显示图像 1) 取一个数组 var arrImages: [[String: String]] = [] 2) 然后使用此功能到达“图像”节点 Database.database().child("Users").child(&l

我想将Firebase中的图像显示到我的收藏视图中。我不知道如何从Firebase获得正确的节点来访问images分支。有些用户最多有5个图像,但有些用户根本没有图像分支。这是我的firebase数据结构


这是你需要做的

  • 获取对图像节点的引用
  • 使用库(如翠鸟)下载并显示图像
  • 1) 取一个数组

    var arrImages: [[String: String]] = []
    
    2) 然后使用此功能到达“图像”节点

    Database.database().child("Users").child(<id>).child("Images").observe(.value) { (snapshot) in
                print(snapshot)
                if snapshot.childrenCount > 0 {
                    for users in snapshot.children.allObjects as! [DataSnapshot] {
                        let images = users.value as? Dictionary
                            self.arrImages.append(images)
                        }
    
                    self.collectionView.reloadData()
                }else{
                    print("No Images")
                }
            }
    
    Database.Database().child(“用户”).child().child(“图像”).observe(.value){(快照)中
    打印(快照)
    如果snapshot.childrenCount>0{
    对于snapshot.children.allObjects as![DataSnapshot]中的用户{
    让images=users.value作为字典
    self.arrImages.append(图像)
    }
    self.collectionView.reloadData()
    }否则{
    打印(“无图像”)
    }
    }
    
    您的图像在firebase存储中,而链接url在firebase数据库中,对吗?照片url不会显示在collectionView中,只有来自图像分支的图像您将图像存储在firebase存储中的ID?它应该是.child(“用户”).child().child(“图像”)我发现此错误,无法在let value=snapshot的第五行强制将“DataSnapshot”类型的值转换为“NSDictionary”类型对不起,let value=snapshot.value as!国家统计局词典。Post editiedself.imagesArray.append(图像):无法将类型为“(键:Any,值:Any)”的值转换为预期的参数类型“String”。您需要将图像url键入case以键入String,请注意,在您的示例中,图像是nsDictionary,我在self.arrImages.append(图像)上遇到错误AnyObject“”与预期的参数类型“String”匹配。当我添加为!我也会撞车
    var arrImages: [[String: String]] = []
    
    Database.database().child("Users").child(<id>).child("Images").observe(.value) { (snapshot) in
                print(snapshot)
                if snapshot.childrenCount > 0 {
                    for users in snapshot.children.allObjects as! [DataSnapshot] {
                        let images = users.value as? Dictionary
                            self.arrImages.append(images)
                        }
    
                    self.collectionView.reloadData()
                }else{
                    print("No Images")
                }
            }