繁体   English   中英

iOS Swift 迭代 Firestore 中的字典项数组

[英]iOS Swift iterate over an Array of Dictionary Items from Firestore

我正在尝试遍历以下字典:

字典在 Firebase

这是我的代码:

Global.sharedInstance.db.collection("usuarios").getDocuments { (snapshot, error) in
    if error != nil {
        print("error de lectura usuarios...")
    } else {
        if let snapshot = snapshot {
            for document in snapshot.documents {
                let data = document.data()
                let txtIdentificador = data["identificador"] as? String ?? ""
                let txtBio = data["bio"] as? String ?? ""
                let txtNombre = data["nombre_usuario"] as? String ?? ""
                let txtFotoPerfil = data["foto_perfil"] as? String ?? ""
                
                var arrFotos = data["fotos"] as? [String: [String:String]]
            }
        }
    }
}

我能够检索前几行,如 id、传记、名称等。但是当我尝试访问字典数组时,我不知道。

这是主要思想:我有一组用户,我用第一个循环“for document in documents...”对其进行迭代,然后每个用户都有一组照片。我想迭代这 3 张照片,并且在每次迭代中我都想检索字段,因此我可以创建一个名为 Image 的 object 并将用户与“hasUpload(Image)”相关联。

我想知道如何迭代 X 张照片并在每次迭代中检索字段。

像这样:

var arrFotos = data["fotos"] as? [String: [String:String]]
for foto in arrFotos {
    for (key,value) in foto {
        
    }
}

我收到错误消息:For-in 循环需要 '[String: [String: String]]?' 符合“顺序”; 你的意思是打开可选的?

可以在此处找到类似的 StackOverflow 案例,他们是这样解决的:

您可以这样做,其中 x 是索引,token 是元素:

for (x, token) in transcriptCandidate.enumerated() {
}

或者如果你不需要索引的话:

for token in transcriptCandidate {
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM