I am trying to access some values in a dictionary I made from Firebase snapshot, I use these values to access some document in my firestore, but these values come back empty therefore the path I used those values in, is empty, and I can't access the firestore.
I am not sure if the values are nested in the dictionary, I tried searching for accessing nested dictionary, but I got other errors.
Here is the output
snapshot Optional({
16640500463403668 = {
ReciverID = "manarx224@gmail.com";
RewardKey = "Reward_25";
isScanned = 1;
};
})
Scanned successfully
16640500463403668
Dictionary is:
Optional({ 16640500463403668 = { ReciverID = "manarx224@gmail.com"; RewardKey = "Reward_25"; isScanned = 1; }; })
resciver id is
RewardKey id is
2022-09-25 02:31:20.924590+0300 KhutaaScannser[30891:1892245] *** Terminating app due to uncaught exception 'FIRInvalidArgumentException', reason: 'Document path cannot be empty.'
And here is my code:
let ref = ref.child("AllQRCodes")
ref.getData { [self] (error, snapshot) in
print("snapshot \(snapshot.value as Any)")
if let value = snapshot.value as? [String: Any] {
for key in value.keys {
if key == QRnumber {
self.ref.child("AllQRCodes").child(QRnumber).child("isScanned").setValue(true)
print("Scanned successfully")
self.messageLabel.text = "Succefully Scanned"
print(key)
let dictionary = snapshot.value as? NSDictionary
print("Dictionary is: " )
print(dictionary)
var ReciverID = dictionary?["ReciverID"] as? String ?? ""
var RewardKey = dictionary?["RewardKey"] as? String ?? ""
print("resciver id is" + ReciverID)
print("RewardKey is "+RewardKey)
db.collection("users").document(ReciverID).collection("UserRewards").document(RewardKey).setData( ["isScanned": true], merge: true)
print("Scanned successfully")
self.messageLabel.text = "Succefully Scanned"
self.ref.child("AllQRCodes").child(QRnumber).removeValue()
break