您好,我尝试将字符串数组解析为dao。为此,我创建了这个:
func getUsersAbos(){
let userid = Auth.auth().currentUser?.uid
let docRef = db.collection("Users").document(userid!)
docRef.getDocument { (document, error) in
if let city = document.flatMap({
$0.data().flatMap({ (data) in
return UserBlogObject(channelAbos: data)
})
}) {
print("City: \(city)")
} else {
print("Document does not exist")
}
}
}
这是我的道:
导入基金会 类UserBlogObject { var channelAbos =任何
init(channelAbos: [String]) {
self.channelAbos = channelAbos
}
init(){
}
}
我在此行出现错误:
return UserBlogObject(channelAbos: data)
无法将类型[[String:任何]]的值转换为预期的参数类型'[String]'
请注意,我只想下载文档中的一个数组,而不是整个文档。
答案 0 :(得分:0)
您可以执行以下操作。我认为不需要使用flatMap()
来使函数过于复杂,但是您可以根据需要进行操作。这是如何创建方法的代码示例。
func getUsersAbos() {
guard let userID = Auth.auth().currentUser?.uid else { return }
let docRef = db.collection("Users").document(userID)
docRef.getDocument { (document, error) in
if error != nil { return }
guard let data = document?.data() else { return }
guard let channelAbos = data["channelAbos"] as? [String] else { return }
let userBlogObject = UserBlogObject.init(channelAbos: channelAbos) // This is the created object. Handle it.
}
}
您的班级:
class UserBlogObject {
var channelAbos : [String]
init(channelAbos: [String]) {
self.channelAbos = channelAbos
}
}