Как наблюдать за удалением модели из базы данных Firebase?

Я использую базу данных Firebase, у меня есть список карт, мне нужно следить за некоторыми картами, если они удалены. Я пытался сделать это с ref.observe (.childRemoved), но это не подходит для моего случая, так как некоторые данные могут быть удалены владельцем карты, и тогда этот блок будет срабатывать несколько раз, мне нужно смотреть, не была ли удалена вся карта. Как я могу это сделать?

Моя ссылка

    let ref = FIRDatabase.database().reference().child(MainGateways.cards.rawValue).child(card.id) 

Структура моих карт

"cards": {
   "-Khv9rUVwErNHBzXcruO": {
      "additionalInfo": {
          "note": ""
      },
      "dateProperties": {
          "day": "Flex",
          "isFlexDate": true,
          "isFlexTime": true,
          "iso8601": "",
          "time": ""
      },
      "interestedUsers": {
          "NfM26A2YcPUFz8rfYa23Kr3mjCO2": {
              "isApproved": false,
              "isNew": true,
              "isoDate": "2017-04-17T13:08:41+04:00",
              "userID": "NfM26A2YcPUFz8rfYa23Kr3mjCO2",
              "userItchableName": "Alexsander K."
          }
      },
      "isNewPendingRequest": true,
      "isPrivateStatus": false,
      "isTest": false,
      "ownerID": "1Cix149ThIOG1ULPVjyy0LyTxbe2",
      "peopleProperties": {
          "availableSeats": 1,
          "numberOfPeople": 1,
          "numberOfPeopleDescription": "1 person"
      },
      "title": "Genius Lounge and Sake Bar",
      "userName": "Tim C.",
      "version": 1
  },

Я тоже пытался сделать такую ​​ссылку, но тогда этот блок срабатывает, если какая-то карта была удалена из списка.

    guard let ref = FIRDatabase.database().reference().child(MainGateways.cards.rawValue).child(card.id).parent else { return }

person Alexander Khitev    schedule 19.04.2017    source источник


Ответы (1)


Ознакомьтесь с Облачные функции для Firebase. Используя это, вы можете написать код JavaScript, который действует в ответ на изменения базы данных по указанному вами пути. Это позволяет вам писать логику независимо от клиентского приложения, чтобы реагировать на изменения в базе данных.

person Doug Stevenson    schedule 19.04.2017