Actualice Firebase multi-location con error: Path es un ancestro de Path. Rápido

Cuando intento actualizar la base de datos en varias ubicaciones usando
.updateChildValues, Aparece el error que se detalla a continuación. ¿Como puedó resolver esté problema?

Finalización de la aplicación debido a la excepción no detectada 'InvalidFirebaseData', razón: '(updateChildValues :) Ruta no válida en el objeto. La ruta (/ Payments / osGRNIZzbRWtllehAXbGJ5NtmRe2 / 1513178895/730890027) es un ancestro de (/ Payments / osGRNIZzbRWtllehAXbGJ5NtmRe2 / 1513178895/730890027 / reservas). '

      let timeStamp = String(Int(Date().timeIntervalSince1970))
        let paymentRef = self.random9DigitString()

        var finalBookingArray = [String: AnyObject]()
        for booking in self.bookingsFromQuery {

            let bookingForPayPeriod = DisbursePaymentData(

                numberOfHours: booking.NumberOfHours,
                bookingAmount: booking.BookingAmount,
                amountPaidToCleanerForBooking: booking.AmountPaidToCleanerForBooking ?? "",
                checkInDate: booking.checkInDate ?? "",
                checkOutDate: booking.checkOutDate ?? "",
                checkInTimeStamp: booking.checkInTimeStamp ?? "",
                checkOutTimeStamp: booking.checkOutTimeStamp ?? "",
                ratePriceClient: booking.RatePriceClient ?? "",
                rateNumberClient: booking.RateNumberClient ?? "",
                ratePriceCleaner: booking.RatePriceCleaner ?? "",
                rateNumberCleaner: booking.RateNumberCleaner ?? "",
                cancelledBy: booking.objectsUnderCancelledBy)

              let bookingCompleted = bookingForPayPeriod.convertDisbursePaymentDataToAnyObject()
                finalBookingArray[booking.BookingNumber] = bookingCompleted
        }

        let finalObject = DisbursePaymentData(
            payPeriodDateStartDate: self.fromDateString.text!,
            payPeriodEndDate: self.toDateString.text!,
            payPeriodTimeStampStartDate: String(describing: self.startDateTimeStamp),
            payPeriodTimeStampEndDate: String(describing: self.endDateTimeStamp),
            paymentRef: paymentRef)

      let objectComplete = finalObject.toAnyObj()
          let childUpdates = ["Payments/\(uid)/\(timeStamp)/\(paymentRef)" : objectComplete,
                              "Payments/\(uid)/\(timeStamp)/\(paymentRef)/\("bookings")" : finalBookingArray
        ] as [String : Any] 

    self.dbRef.updateChildValues(childUpdates)

esquema:

Payments  
 -timeStamp
   -paymentRef


       payPeriodDateStartDate: date1
       payPeriodEndDate: - date 2
       payPeriodTimeStampStartDate: tstamp1
       payPeriodTimeStampEndDate:   tstamp2
       paymentRef: generate9DIgits
       Total:
       allfees: 
       netPay:
       //---->>the key:value pairs above represent objectComplete that I set above

      - bookings  // -> this is finalBookingArray that I set above
           booking1
             - hours: 
             - originalPriceOfBooking
             - amountPaidToCleanerForBooking
             -ratePriceClientContent
             -rateNumberClientContent
             -ratePriceCleanerContent
             -rateNumberCleanerContent
             -checkInDate:
             -checkOutDate:                    
             -checkInTimeStamp:
             -checkOutTimeStamp:
             -cancelledBy
               -timeStamp
                   values under timeStamp
 booking2

Respuestas a la pregunta(0)

Su respuesta a la pregunta