Reputation: 1010
Hey guys I am trying to get a Value from my firebase firestore and I seem to keep getting these multiple payload values instead of the value I am looking for. Here is what I currently have :
let motoGPRiders = db.collection("riders").whereField("game_type", isEqualTo: "MOTOGP").addSnapshotListener { (QuerySnapshot, Error) in
let allDocuments = QuerySnapshot!.documents
for riderDocument in allDocuments {
let data = riderDocument.data()
// Get the rider list
guard let riderList = data["game_type_riders"] as? NSMutableArray else { return }
var x = riderList[0] as! NSMutableDictionary
var riderName = x["name"]
var y = ""
}
and here is what is in x :
payload_data_0 NSString "Joe" 0xd9200b3dfae6b8f0
payload_data_1 Builtin.RawPointer 0x0 0x0000000000000000 payload_data_2 Builtin.RawPointer 0x600001471840 0x0000600001471840
Included is a screenshot of my db data as well any ideas ?
Upvotes: 0
Views: 327
Reputation: 1391
Change NSMutableArray to [Any] and NSMutableDictionary to [String: Any].
Here is the full code.
let motoGPRiders = db.collection("riders").whereField("game_type", isEqualTo: "MOTOGP").addSnapshotListener { (QuerySnapshot, Error) in
let allDocuments = QuerySnapshot!.documents
for riderDocument in allDocuments {
let data = riderDocument.data()
// Get the rider list
guard let riderList = data["game_type_riders"] as? [Any] else { return }
guard let x = riderList[0] as? [String: Any] else { return }
guard var riderName = x["name"] as? String else { return }
var y = ""
}
Upvotes: 1