将离线数据保存到CB Lite 2.0中

时间:2018-08-12 10:16:42

标签: ios swift couchbase-lite

问题:( CB Lite 2.0,Swift)

注册屏幕,该屏幕具有名称,电子邮件和Dob,并且要保存在沙发床Lite中。 每次用户填写带有这些字段的表单时,我都想存储在本地CB Lite DB中 之后,我想获取cb lite中的所有记录存储。 问题是:

创建了文档

在快速字典中存储了name,emal和dob,并试图进行保存并存储,但是每次获取时它只显示一个,而不显示其他用户信息。

Kinldy帮我解决这个问题。

在Couchbase论坛上提出查询:

https://forums.couchbase.com/t/saving-offline-data-into-cb-lite-2-0/17877?u=st.shubh.tiwari

1 个答案:

答案 0 :(得分:1)

这是我通过收到一个示例通知并检查其工作情况的方式:

let dict = [
                    "alert": "push notification.. (5)",
                    "badge": 1,
                    "sound": "default"
                ] as [String : Any]

            var notificationArray = [Dictionary<String,Any>]()

            let notiDict = CouchDBHelper.fetchDocumentByDocId(documentID: Constants.notificationDocument)

            if let notiArray = notiDict["notification"] as? [Dictionary<String,Any>] {
                notificationArray = notiArray
            }
            notificationArray.append(dict)

            CCouchDBHelper.insertNotificationData(data: notificationArray, doc_id: Constants.notificationDocument)
            objNotifcationSource = notificationArray
            objNotificationTable.reloadData()



       public func insertNotificationData(data:Any?,doc_id:String)
        {
            //let sharedInstance = CouchbaseAdapter.sharedInstance
            let doc = MutableDocument(id: doc_id) 

            doc.setValue(data, forKey: "notification")

            do {
                try database.saveDocument(doc)
                //try sharedInstance.database.saveDocument(doc)
                print("Inserted Record :", data as! NSArray)
            } catch let error as NSError {
                print("Error in saving",error)
            }

            fetchDocumentByDocId(documentID: doc_id)
        }