Javascript chrome.storage.sync不在浏览器之间同步

Javascript chrome.storage.sync不在浏览器之间同步,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在写一个chrome扩展,我想在多台计算机上同步一些数据。我的印象是,如果我使用相同的gmail帐户“登录”到两个不同的chrome浏览器(一个在同一台计算机上运行的虚拟机中),我应该能够在一个浏览器上使用chrome.storage.sync.set,然后使用chrome.storage.sync.get从另一个浏览器检索相同的数据 我可以使用get方法从运行set方法的同一浏览器中检索数据(即使是从单独的incognito窗口),但另一个虚拟机上的同一get命令返回一个空对象 两种浏览器

我正在写一个chrome扩展,我想在多台计算机上同步一些数据。我的印象是,如果我使用相同的gmail帐户“登录”到两个不同的chrome浏览器(一个在同一台计算机上运行的虚拟机中),我应该能够在一个浏览器上使用chrome.storage.sync.set,然后使用chrome.storage.sync.get从另一个浏览器检索相同的数据

我可以使用get方法从运行set方法的同一浏览器中检索数据(即使是从单独的incognito窗口),但另一个虚拟机上的同一get命令返回一个空对象

两种浏览器都在“高级同步设置”中设置了“同步所有内容”选项。 两种浏览器都有相同的chrome版本:33.0.1750.117M

以下是我的设置和获取代码:

chrome.storage.sync.set({'foo': 'bar'}, function() {});

chrome.storage.sync.get('foo', function(items) {
    console.dir(items);
});

正如@abraham和@sowbug都提到的,问题在于加载未打包的扩展时,它们会被分配不同的扩展ID。 我在这里找到了解决方案:
它包括从chrome的extensions页面打包扩展名,然后加载生成的.crx文件。每次加载此.crx文件时,它都将具有相同的扩展名id。

这两个扩展名都使用相同的扩展名id吗?为了在@abraham的评论(这很可能是正确的答案)的基础上构建一点,当您上传到商店时,将永久分配扩展名id。对于开发中的未打包扩展,ID由一些可能是某种不寻常的系统变量合成,例如未打包扩展的目录位置。如果您想知道如何在开发过程中使ID保持稳定,请另外问一个问题。