Firebase removeObserver выпускает swift - PullRequest
0 голосов
/ 27 апреля 2018

В моем приложении используется 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")
            }
        }
    })
}

1 Ответ

0 голосов
/ 27 апреля 2018

Хотя показанный код имеет недостатки в том, что он немедленно перезаписывает значения beaconRegion и dataDictionary, даже если эти проблемы устранены, вы все равно не можете передавать два маяка на iOS одновременно.

iOS просто не позволяет этого. Приложение может рассылать только одну рекламу за раз. Однако вы можете смоделировать передачу двух маяков, быстро переключаясь между ними. Смотрите мой соответствующий ответ здесь для деталей: https://stackoverflow.com/a/21553009/1461050

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...