Swift 3:如何在失败时重试Firebase上传

时间:2017-09-04 14:14:23

标签: swift firebase firebase-realtime-database

我正在初始化Firebase中的一些数据,我将用它来跟踪用户的活动。我需要确保将这些数据写入Firebase,因此我想知道确保关键上传成功的最佳做法是什么?

static func createUserActivityCounts(uid: String) {
        DispatchQueue.global(qos: .background).asyncAfter(deadline: .now() + .seconds(5)) {
            let databaseReference = Database.database().reference()
            let userCounts: [String: Any] = ["posts": 0,
                                             "comments": 0,
                                             "likes": 0]
            databaseReference.child("userActivity").child(uid).child("counts").setValue(userCounts) { (error, ref) -> Void in
                if error != nil {
                    print(error!.localizedDescription)
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我认为解决此问题的最佳方法是在您尝试查询关键上传时检查该值是否存在。如果该值不存在,则初始化它。这是我为处理这个问题而编写的函数。

this.quote_items.push({
            inventory_id: '',
            count: 1,
            fee: 13500000,
            discount: 0,
            sum: 0,
            tax_percent: 9,
            tax_amount: 0,
            total: 0
        });