我想从firebase中检索数据。我为用户创建了一个结构。但我在init方法中遇到错误
类型'Any'没有下标成员
struct userObj {
var address:String!
var name: String!
var userId: String!
var ref: DatabaseReference?
var key: String!
init(snapshot: DataSnapshot) {
key = snapshot.key
name = snapshot.value!["name"] as! String // this line give error
address = snapshot.value!["address"] as! String // this line give error
userId = snapshot.value!["userId"] as! String // this line give error
ref = snapshot.ref
}
}
答案 0 :(得分:1)
DataSnapshot.value
属性声明为var value: Any? { get }
它没有显式声明为字典类型,但它可能包含其他可能类型的字典
在您可以访问字典之前(如果您知道有字典),您必须对其进行类型转换以获取您可以使用的实际字典:
snapshot.value as? [String : AnyObject]
请注意,如果没有合适类型的适当数据,那么使用!
显式展开选项会崩溃。