Я использую Firebase SDK (2.4.2) для iOS. Следующий код является частью функции didSelectPost()
, используемой в объекте SLComposeServiceViewController
. Очень важно указать, что это поведение не совпадает с обычным UIViewController
(странно, я знаю).Firebase runTransactionBlock() удаляет узел
Предполагая, что следующий базовый код:
override func presentationAnimationDidFinish() {
// Retrieving content and identifying type here
}
override func didSelectPost() {
self.myRootRef.runTransactionBlock({
(currentData:FMutableData!) in
currentData.value = "test"
// Finalizing the transaction
return FTransactionResult.successWithValue(currentData)
}
)
self.extensionContext!.completeRequestReturningItems([], completionHandler: nil)
}
Когда операция завершена node_value
полностью исчезает из Firebase. Значение не задано, и узел удален. Это очень странное и неожиданное поведение!
С другой стороны, следующий код работает должным образом.
override func didSelectPost() {
self.myRootRef.setValue("test", withCompletionBlock: {
(error:NSError?, ref:Firebase!) in
if (error != nil) {
print("Data could not be saved.")
} else {
print("Data saved successfully!")
}
})
self.extensionContext!.completeRequestReturningItems([], completionHandler: nil)
}
Эта проблема не существовала пару дней назад, последний раз я запускал код выше. Есть ли какие-нибудь идеи относительно проблемы?
Дайте мне знать, если мои ответы будут работать для вас. Если это так, отметьте его как принято. Хорошо держать оставшуюся без ответа очередь. –
@DavidEast Я еще не получил время, чтобы проверить ответ. Я, скорее всего, сделаю это в эти выходные, после чего я подтвержу ответ здесь. – Bassem