2016-06-07 21 views
6

Tôi đang đọc ví dụ về firebase.google được thấy ở đây https://firebase.google.com/docs/database/ios/save-data#save_data_as_transactions và tôi đang cố gắng viết phiên bản của riêng mình. Tôi gặp rắc rối khi ví dụ firebase khiến tôi bối rối hơn trước khi tôi bắt đầufirebase runTransactionBlock

Tất cả những gì tôi cố gắng làm là khi một người nhấn vào nút là + (hoặc + = 1) đến số và một nút khác sẽ xóa nó

Ai đó có thể giúp tôi tìm ra cách thực hiện ... người dùng khác trên câu hỏi trước đã đăng liên kết đến các câu trả lời bằng ngôn ngữ khác và tôi đã cố gắng viết nó bằng ngôn ngữ nhanh nhưng tôi đã thất bại thảm hại

+1

Vui lòng không xóa một câu hỏi để sau đó đăng lại. Nếu bạn có thông tin để thêm vào [câu hỏi trước của bạn] (http://stackoverflow.com/questions/37668501/ios-firebase-how-to-setvalue-of-1?noredirect=1#comment62815948_37668501), hãy nhấp vào "chỉnh sửa "liên kết bên dưới và thêm thông tin. –

+1

Để tìm mẫu của những người khác sử dụng giao dịch Firebase nhanh chóng, hãy xem [câu hỏi này] (http://stackoverflow.com/questions/37061536) hoặc [mẫu này] (http://stackoverflow.com/questions/34778914/data -trọng lượng-trên-rất-gần-sự kiện-trong-firebase/34779307 # 34779307) hoặc một số người khác từ [tìm kiếm này] (http://stackoverflow.com/search?q=%5Bfirebase%5D+transaction+swift). –

+1

Tôi đồng ý với người đàn ông tôi chỉ tìm thấy điều này bởi vì khối giao dịch trong tài liệu là điên khó hiểu. Tôi không biết tại sao nó lại quá khó hiểu như thế. Gia tăng là một điều khá phổ biến, họ chỉ nên có một chức năng cụ thể mà chỉ cần làm điều đó, như incrementValue() hoặc một cái gì đó. –

Trả lời

9

Nhờ nhận xét đã thấy ở trên, tôi có thể làm việc này

....runTransactionBlock { (currentData: FIRMutableData) -> FIRTransactionResult in 

     var value = currentData.value as? Int 

     if value == nil { 
      value = 0 
     } 

     currentData.value = value! + 1 
     return FIRTransactionResult.successWithValue(currentData) 




    } 
+1

Bạn có chắc chắn 100% nó có hiệu quả không? Bạn đã thử nghiệm với nhiều người dùng cùng một lúc? Điều này có vẻ đơn giản hơn nhiều so với tài liệu vì vậy nếu bạn chắc chắn nó hoạt động sau đó tôi thà sử dụng lol này –