I have upgraded the CB Lite version to 2.6 and my main intention was to get the revision ID changes added in 2.6 w.r.t 2.5. But when I try to access the revision id value using document.revisionID its returns nilwhen I reveive the document through pushfilter block. I could see the revision ids of that document using cblite tool. Is there any reason for this issue with pushfilter?
config.pushFilter = { (document, _) in
print(document.revisionID) // nil
}
This could be a CBL bug. A Document object passed to a filter is constructed differently than one that you explicitly read from the database. Maybe the code that handles the push filter doesn’t store the revision ID into the object?
Thanks @jayahari.vavachan@jens for the reply and initiative to resolve the issue. Now I did a work around by accessing the revision id of the document from the DB with the available document id from the filter block.
We are creating some documents from app and keeping its draft until it matches to a specific document state. So we wanted to log the pushed document Id and revision Id to see the last edit done on that document from app. The same document can be updated by middleware services too. This was added to see the document update cycle in order to track some issues.
if you try fetching the revision-id from the db inside the filter, it might not be same as one which you trying to push to SGW. Since between the time you made the changes, and when replicator tries to send, the same document can be changed by another process(resulting in a new revision-id to same document).
Until we push the document its there in our draft and my assumption is all the edit should be happening from client side. Any other possibility you can think of @jayahari.vavachan?
Can you provide us a concrete example of the problem you are trying to solve (sorry but from that use case description, that wasn’t clear to me. An example of sequence of operations would be preferred). Maybe there are alternative approaches to solving that…