Google Cloud MBS的文档指出,可以通过在字符串“[public]”或“[private]”前加上实体的KindName前缀来控制对存储实体的访问, “ (或无)。使用Google Cloud/Android Mobile后端入门名称访问范围
https://cloud.google.com/developers/articles/mobile-backend-starter-api-reference#acfce
然而试图CloudEntities插入数据存储区使用与[公共]或[私人]启动导致异常/错误KindNames,具体而言,是KindName是无效的。
这是既为后端在打开和在安全模式下运行(使用谷歌登录凭证来导出_owner字段)
例如的情况下在这里我使用KindName“[public] TestDB”失败,而“TestDB”不会抛出任何异常。
04-22 19:57:54.132:E/AndroidRuntime(4690):进程:com.example.package,PID:4690
04-22 19:57:54.132:E/AndroidRuntime( 4690):java.lang.IllegalArgumentException:Illegal kind name:[public] TestDB
04-22 19:57:54.132:E/AndroidRuntime(4690):at com.google.cloud.backend.core.CloudEntity。 (CloudEntity.java:86)
04-22 19:57:54.132:E/AndroidRuntime(4690):at com.example.package.CloudUtil.convertUpdatesToCEList(CloudUtil.java:252)
04-22 19:57:54.132:E/AndroidRuntime(4690):在com.example.package.CloudUtil.checkSync(CloudUtil.java:199)
的代码的相关部分editted /压缩为简洁是:
CloudBackendMessaging cbm=_cloudfrag.getCloudBackend();
List<CloudEntity> entries=new ArrayList<CloudEntity>();
while (...) {
CloudEntity ce=new CloudEntity(_CLOUD_DB_KIND);
ce.put("fieldname", devID);
entries.add(ce);
}
_countActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
cbm.updateAll(entries, handler);
}
});
如果处理程序是回调_cloudfrag是从示例代码CloudBackendFragment。
对于一次或多次实体列表,我同样使用插入和更新的效果。
我只能认为我误解了文档 - 但似乎相当明确,KindNames可以从[public] [private]等开始?