我正在开发一个Android应用程序,它使用dropbox提供的数据存储api同步设备。它有一组元数据需要在用户第一次将其帐户与应用程序连接时上传到Dropbox。对于使用相同保管箱帐户登录的下一个设备,无需再次创建元数据(因为它已经存在)。
为了实现这一点,我在插入记录之前进行查询以检查元数据是否已存在。
问题是,即使记录存在于表中,我的查询也会得到空结果。我在执行此检查之前调用了sync()方法,但看起来像api检查本地数据存储区并确认返回空结果。
我不确定这是否是预期的,但其中一项工作可能是: - 提供同步完成的回调/事件,以确保应用程序确保下载/上传已完成。 (或) - 对于查询,应该有一种方法来检查服务器,以查看是否有任何现有记录(虽然它不利于查询时间的增加)。
欢迎任何建议。感谢
答案 0 :(得分:1)
“已完成同步”是一个有问题的术语......数据存储API正在不断进行同步。您可以使用DbxDatastoreStatus
查看当前是否有任何已知的更改。首次关联帐户时,isDownloading
字段应为true,因此您可以使用该字段来启用“首次同步”。
至于添加初始数据的用例,您可能希望使用具有已知ID的getOrInsert
(例如“元数据”)。这样,即使在多个设备上创建记录,您仍然只能使用一条记录。