We have a Sitecore 8.1 Update-3 instance. We have created custom xDB facets. We have a modal pop-up screen that a user can use to update their custom information. This pop-up screen uses web service calls to pass the information back to the server to be saved.
I can't figure out how to properly save the xDB data in the web service. I believe under normal conditions (like in code behind) if the current user is logged in then my code should update Tracker.Current.Contact with the information. That way all of the contact info will be saved to xDB when the user's session ends. But since this code is running in a web service it doesn't have any access to Tracker.Current.Contact.
I could save it directly to xDB using custom code. But that won't work because I believe that when the person's session ends then the system will write their Tracker.Current.Contact to xDB and it will overwrite the previously saved information.
So how would I save this info to the person's contact record properly from a web service?