Google drive api 谷歌实时API-何时保存对数据库的更改?

Google drive api 谷歌实时API-何时保存对数据库的更改?,google-drive-api,google-drive-realtime-api,Google Drive Api,Google Drive Realtime Api,情景: 我有多个浏览器客户端,它们的互联网连接速度从极快到极慢不等。因此,他们可能看不到文档的相同状态 我之所以使用,是因为文档实际上存储在数据库中 将文档保存到数据库是从客户端触发的 问题:我如何知道哪个客户端获得了应该保存到数据库中的最新文档 你是对的,你不能指望任何特定的客户在特定的时间是最新的。确定这一点并不容易,因为这一点在任何给定的时刻都可能发生变化。(尽管您可以通过查看来确保特定客户端中没有任何未保存的更改。) 您可以使用作为驱动器API一部分的,而不是试图根据客户端状态来执行

情景:

  • 我有多个浏览器客户端,它们的互联网连接速度从极快到极慢不等。因此,他们可能看不到文档的相同状态

  • 我之所以使用,是因为文档实际上存储在数据库中

  • 将文档保存到数据库是从客户端触发的


问题:我如何知道哪个客户端获得了应该保存到数据库中的最新文档

你是对的,你不能指望任何特定的客户在特定的时间是最新的。确定这一点并不容易,因为这一点在任何给定的时刻都可能发生变化。(尽管您可以通过查看来确保特定客户端中没有任何未保存的更改。)

您可以使用作为驱动器API一部分的,而不是试图根据客户端状态来执行此操作,它将为您提供具有修订号的数据的有效快照,以便您可以跟踪您拥有的版本

请注意,这是一个全新的功能,因此它还没有很好的文档记录。响应是一个json对象,具有appId、修订号和一个包含文档json版本的数据字段。对于在根目录中有协作列表“list”和协作字符串“text”的文档,它看起来像这样:

{"appId":"788242802491","revision":17,
 "data":{"id":"root","type":"Map",
   "value":{
     "list":{"id":"gde9s8z5khjarls7o","type":"List","value":[]},
     "text":{"id":"gdef98qdhiq679af","type":"EditableString","value":"This is a test 2."}}}}

有效的快照来自哪里?因为我使用的是快捷方式文件,所以没有数据存储在中心位置(服务器),对吗?实时数据模型始终存储在服务器上。这对于(除其他外)用户能够稍后返回并查看它是必要的。使用快捷方式文件只意味着除了实时数据模型本身之外,您没有存储任何额外的二进制数据。(如果你想更好地理解这一切是如何运作的,你可能想看看我们在谷歌I/O上的幕后谈话)我明白了。我想还有一个问题,我想把这些快捷方式文件存储多久?我想我不希望它们永远存在,所以在最后一个用户存在实时会话后我是否要删除它们?