我尝试使用Google的Fusion Table服务作为我正在构建的应用的后端数据库。它几乎完美无缺,但我需要创建表格文件或将其移动到Google云端硬盘的隐藏应用文件夹中。如果用户手动编辑或删除文件,很多事情都可能出错。
似乎Fusion Table api不支持选择父文件夹...它每次都会在根目录中创建表格文件。
我尝试过以下方法(Dart中的代码)......
1)使用Drive api更新表格文件的父参考
File folder = await getAppFolder();
var folderRef = new ParentReference()
..id = folder.id;
file.parents.add(folderRef);
await drive.files.update(file, file.id);
(状态:403,消息:appdata内容不支持该方法)
请注意,这适用于普通文件夹,但不适用于app文件夹。
2)使用Drive api
创建新的表格文件File appFolder = await getAppFolder();
var parent = new ParentReference()
..id = appFolder.id;
var file = new File()
..title = 'MyDatabase'
..mimeType = 'application/vnd.google-apps.fusiontable'
..parents = [parent];
await drive.files.insert(file);
(状态:400,消息:错误请求)
无论我改变什么设置,这似乎都不起作用。
3)使用Drive api
将表格文件复制到app文件夹中File origFile = await getFile(title);
File folder = await getAppFolder();
var folderRef = new ParentReference()
..id = folder.id;
var newFile = new File()
..title = title
..parents = [folderRef];
newFile = await drive.files.copy(newFile, origFile.id);
await drive.files.insert(newFile);
(状态:403,消息:在appdata文件夹中只允许存储在云端硬盘中的文件夹或文件)