2017-04-19 105 views
0

我使用Firebase数据库,我有一张卡片列表,如果它们被删除,我需要监视一些卡片。我试图用ref.observe (.childRemoved)来做到这一点,但这不适合我的情况,因为持卡人可以删除一些数据,然后这个模块会触发多次,我需要观察整个卡是否被删除。我怎样才能做到这一点?如何观察从Firebase数据库中删除模型?

我参考

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 } 

回答

1

调查Cloud Functions for Firebase。使用它,您可以编写JavaScript代码,以响应您指定的路径上的数据库更改。这允许您编写独立于客户端应用程序的逻辑,以对数据库中的更改作出反应。