Novice programmer, currently working on an ios app using firebase as our backend. I'm trying to grab values from the firebase database to populate a TableView, but there are two issues. Firstly, it seems to ignore the ref.observeSingleEvent that I set up to try and retrieve the values, and while running the console ouputs:
2016-10-16 00:26:02.635: STOP!! Will reset deviceID from memory.
2016-10-16 00:26:02.635: Failed to fetch default token Error Domain=com.firebase.iid Code=6 "(null)"
similar to this issue. I'm fairly certain I've followed the Firebase documentation correctly for setup.
Important Part of Code within CommitteesTableViewController:
// Sets each cell up with its committee title
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "committeeCell", for: indexPath) as! CommitteeTableViewCell
let committee = cell.committeeLabel
let sectionRef = FIRDatabase.database().reference(withPath: "Committee".child(String(indexPath.section))
let committeeRef = sectionRef.child(String(indexPath.row))
let currentRef = committeeRef.child(String(indexPath.row)).child("name")
currentRef.observeSingleEvent(of: .value, with: { (snapshot) in
committee?.text = snapshot.value as? String
})
return cell
}
JSON Database that is in firebase:
{
"Committee" : {
"0" : {
"0" : {
"name" : "First Disarmament and International Security Committee",
"Head Chair" : "Jessie Mao",
"Vice Chairs" : "Himaja Jangle, Sita McGuire",
"Topics" : "Congo: Resources in Conflict, Modern Warfare: Privatization of War"
},
"1" : {
"name" : "UN Special, Political And Decolonization Committee",
"Head Chair" : "Trevor Dowds",
"Vice Chairs" : "Lucia Zhang, Sarah Yue",
"Topics" : "A Review of UN Peacekeeping Operations, Situation in Sudan and South Sudan"
},
"2" : {
"name" : "UN 6th Legal Committee",
"Head Chair" : "Benjy Malings",
"Vice Chairs" : "Sherry Guo, Emma Lautanen",
"Topics" : "Reform of the ICC/ICJ System, Reconsidering the Responsibility to Protect (R2P)"
},
"name" : "Bloc A"
},
"1" : {
"0" : {
"name" : "UN Human Rights Council",
"Head Chair" : "Amanda Lee",
"Vice Chairs" : "Jessica Zhao",
"Topics" : "Palestinian Women's Rights, Capital Punishment and the Rights of Prisoners"
},
"1" : {
"name" : "UN Educational, Scientific, And Cultural Organization",
"Head Chair" : "Adam Umemoto",
"Vice Chairs" : "Emily Yan, Jacob Hands",
"Topics" : "Child Soldiers: The Rights of Children in Armed Conflict, Reconsidering the 2030 Education Agenda"
},
"2" : {
"name" : "UN Economic And Social Council",
"Head Chair" : "Alex Feibleman",
"Vice Chairs" : "Octavio Garcia Farfan, Liam Campbell",
"Topics" : "Strengthening Resilience to Climate Related Disasters, Commercial Bribery in Multinational Organizations"
},
"3" : {
"name" : "World Health Organization",
"Head Chair" : "Mekhala Hoskote",
"Vice Chairs" : "Brandon Doan, Ashley Njoroge",
"Topics" : "Sustainable Vaccine Practices and Financing, Improving Slum Health"
},
"4" : {
"name" : "International Criminal Police Organization, INTERPOL ",
"Head Chair" : "Natasha Cougoule",
"Vice Chairs" : "Chelsea Evans, Jacky Tian",
"Topics" : "Controlling the Black Market Trade of Civil War Antiques, Protection of Journalists in Conflict Zones"
},
"name" : "Bloc B"
},
"2" : {
"0" : {
"name" : "UN Security Council",
"Head Chair" : "Kim Nguyen, TJ Ford",
"Vice Chairs" : "Mischa Fritz",
"Topics" : "South China Sea, Open Agenda"
},
"1" : {
"name" : "Historical UN Security Council",
"Head Chair" : "Pranay Patil",
"Vice Chairs" : "Michael Pollack",
"Topics" : "Gulf War, Khmer Rouge"
},
"2" : {
"name" : "North Atlantic Treaty Organization",
"Head Chair" : "Gloria Cheung",
"Vice Chairs" : "Trent Gomberg",
"Topics" : "Post-Intervention Stability in Libya, Unrest in the East: Security in the Black Sea and Baltic Region"
},
"3" : {
"name" : "African Union",
"Head Chair" : "Itago Kangashi",
"Vice Chairs" : "Zoe Brouns",
"Topics" : "Volatile Political Systems: The Role of the AU in Establishing Democracies, The State of Agriculture and Food Security"
},
"4" : {
"name" : "Organization Of American States",
"Head Chair" : "Adrian Hernandez",
"Vice Chairs" : "Jane Kim",
"Topics" : "Drugs and Development in Latin America, Migration Movements in Latin America"
},
"5" : {
"name" : "Chinese State Council",
"Head Chair" : "Rita Hu",
"Vice Chairs" : "Haochen Zhou",
"Topics" : "Review on the Loosening of the One-Child Policy, One Belt, One Road"
},
"6" : {
"name" : "United States Senate",
"Head Chair" : "Jonas Majewski",
"Vice Chairs" : "Eric Cherwin",
"Topics" : "Immigration Reform and a Pathway to Citizenship, Trade Agreements and the American Economy"
},
"7" : {
"name" : "UNEP Division Of Environmental Laws And Conventions",
"Head Chair" : "Nate Parke",
"Vice Chairs" : "Kendra Singh",
"Topics" : "Compensatory Mitigation in a Global Context, Common but Differentiated Environmental Responsibility"
},
"8" : {
"name" : "UN Framework Convention On Climate Change - Conference Of The Parties 22.5",
"Head Chair" : "Katie Lee",
"Vice Chairs" : "Se Yeon Kim",
"Topics" : "Building Adaptation Capacity for Vulnerable Communities, Governance of Geoengineering"
},
"9" : {
"name" : "European Court Of Human Rights",
"Head Chair" : "Jake Moskowitz",
"Vice Chairs" : "Patty Midy",
"Topics" : "Cyprus v. Turkey"
},
"10" : {
"name" : "Press Corps",
"Head Chair" : "Sarah Bauer",
"Vice Chairs" : "Hyunwook Kim, Stacey Dojiri",
"Topics" : "Open Agenda"
},
"name" : "Specialized"
},
"3" : {
"0" : {
"name" : "Joint Cabinet Crisis",
"Head Chair" : "Michael Eliot",
"Vice Chairs" : "Andy Luo, Michael McDonald, Tushita Saraf",
"Topics" : "Trade Wars: Anglo-Dutch East India Companies"
},
"1" : {
"name" : "Committee For Sustainable Development",
"Head Chair" : "Rob Purviance",
"Vice Chairs" : "Daksh Bhatia",
"Topics" : "Rebuilding a Nation: Infrastructure Development in Myanmar"
},
"2" : {
"name" : "Historical Crisis",
"Head Chair" : "Arjun Banerjee",
"Vice Chairs" : "Alex Wilfert",
"Topics" : "Unification of Germany"
},
"name" : "Crisis"
}
}
}
UPDATE
So changing the firebase database in any way (like adding a random value) causes it to work momentarily, but then after stopping the app for some time it stops working again, and continues to work and not work sporadically. I think it has to do with the choice of observeSingleEvent but I'm not sure.