I am trying to pull a list of data from my Firebase Database. Below is my code. Both functions are called in my viewDidLoad();
however, the print(theLikeArray)
is returning empty brackets even though my database is fully populated.
Below is the code I am currently using. The first function is used to retrieve all the information from the database while the second is used to populate the database. The second function is called prior to the first.
func retriveDiscounts() {
let likesDB = Database.database().reference().child("Discounts")
likesDB.observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String , String>
let businessID = Int(snapshotValue["BusinessID"]!)
let businessName = snapshotValue["businessName"]!
let DateNumber = Int(snapshotValue["DateNumber"]!)
let theDeal = snapshotValue["theDeal"]!
let phoneNumber = snapshotValue["PhoneNumberText"]!
let imageName = snapshotValue["ImageName"]!
let dateText = snapshotValue["DateText"]!
let phoneNumberInteger = Int(snapshotValue["phoneNumberInteger"]!)
let companyLogo = snapshotValue["companyLogo"]!
let r1 = Int(snapshotValue["r1"]!)
let r2 = Int(snapshotValue["r2"]!)
let r3 = Int(snapshotValue["r3"]!)
let classification = snapshotValue["classification"]!
let allTheLikes = likeclass()
allTheLikes.discountID = businessID!
allTheLikes.businessName = businessName
allTheLikes.dateApplied = DateNumber!
allTheLikes.theDeal = theDeal
allTheLikes.phoneNumber = phoneNumber
allTheLikes.imageName = imageName
allTheLikes.dateText = dateText
allTheLikes.numberNumber = phoneNumberInteger!
allTheLikes.companylogo = companyLogo
allTheLikes.r1 = r1!
allTheLikes.r2 = r2!
allTheLikes.r3 = r3!
allTheLikes.classification = classification
self.theLikeArray.append(allTheLikes)
}
print(theLikeArray)
}
func updateLikeDatabase(){
for i in 0...allDiscounts.list.count-1{
let likesDB = Database.database().reference().child("Discounts")
let likeDictionary = ["BusinessID": "\(i)","businessName":"\(allDiscounts.list[i].businessName)","DateNumber": "\(allDiscounts.list[i].dateApplied)","theDeal": "\(allDiscounts.list[i].theDeal)" ,"PhoneNumberText": "\(allDiscounts.list[i].phoneNumber)","ImageName": "\(allDiscounts.list[i].imageName)","DateText": "\(allDiscounts.list[i].dateText)" ,"phoneNumberInteger": "\(allDiscounts.list[i].numberNumber)","companyLogo": "\(allDiscounts.list[i].companylogo)","r1": "\(allDiscounts.list[i].r1)" ,"r2": "\(allDiscounts.list[i].r2)","r3": "\(allDiscounts.list[i].r3)","classification": "\(allDiscounts.list[i].classification)"] as [String : String]
likesDB.child("\(allDiscounts.list[i].businessName)").setValue(likeDictionary) {
(error, reference) in
if error != nil{
let alert = UIAlertController(title: "Error", message: "There was an error registering your like. Reconnect online and try again", preferredStyle: .alert)
let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
alert.addAction(okAction)
self.present(alert,animated: true)
// self.showerror()
}
else{
print("Message Saved Successfully")
}
}
}
}