В моем приложении используется Firebase.
В настоящее время я сталкиваюсь с проблемой удаления наблюдателей из DatabaseReference.
При удалении любого значения он удаляет все связанные (множественные записи) значения, но когда он не удаляет наблюдателя для этой ссылки.
Когда я пытаюсь ввести ту же запись в следующий раз, она автоматически удаляется.
А также RemoveAllObservers () не работает.
func deleteNodeForGatewayFromFirebase(gID:String,ownerID:String)
{
ref.observe(.value, with: { snapshot in
var loopCount = 1 // count loops to see how may time trying to loop
for child in snapshot.children
{
print(" ")
print(" ")
print("child node ------ loop \(loopCount)")
let snap = child as! DataSnapshot //each child is a snapshot
let dict = snap.value as! [String: Any] // the value is a dictionary
let gId = dict["gatewayId"]
let nId=dict["nodeId"]
let owner = dict["ownerId"]
print("the bits ------")
print("gatewayId .... \(String(describing: gId))")
print("nodeId .... \(String(describing: nId))")
print("ownerId .... \(String(describing: owner))")
loopCount += 1
if gID.elementsEqual(gId as! String)
{
print("owner found")
self.ref.child(nId as! String).removeValue { (error, ref) in
if error != nil
{
print("error.... \(String(describing: error))")
}
else
{
ref.removeValue()
print("entry deleted.....")
}
}
return
}else
{
print("no gateway found")
}
}
})
}