Doug Ray
Doug Ray

Reputation: 1010

Getting value from NsDIctionary in Swift

enter image description hereHey 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

Answers (1)

MBT
MBT

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

Related Questions