【问题标题】:Google Drive Realtime item instanceof gapi.drive.realtime.CollaborativeList errorsGoogle Drive Realtime item instanceof gapi.drive.realtime.CollaborativeList 错误
【发布时间】:2014-11-05 08:39:57
【问题描述】:

大约 6 个月以来,我们一直在使用项目 instanceof gapi.drive.realtime.CollaborativeList 来检测属性是否为 CollaborativeList。这在上周开始失败,我们检查了 gapi.drive.realtime,似乎没有 CollabroativeList 或文档中描述的任何其他模型存在。 https://developers.google.com/drive/realtime/reference/。我们仍然能够访问标准驱动器功能,因此这似乎不是身份验证问题。进行该调用的函数包含在 gapi.load("drive-realtime", function() {}) 中。有没有人知道为什么模型不再存在?

gapi.load("drive-realtime", function() { 
  if("test" instanceof gapi.drive.realtime.CollaborativeList){
    console.log("hi")
  }
})

这个函数会返回 Uncaught TypeError: Expecting a function in instanceof check, but got undefined

这是因为 gapi.drive.realtime 中不存在 gapi.drive.realtime.CollaborativeList

【问题讨论】:

  • 您能否包含一段演示问题的代码?

标签: google-drive-api google-drive-realtime-api


【解决方案1】:

请参阅 Brian 对此问题的回答:Was the Drive Realtime API changed today? 通常没有理由访问构造函数,这样做可能会导致问题,因此已删除访问权限。

不知道是不是合作列表的场景是什么?

【讨论】:

  • 我们有两个场景需要知道具体是列表还是地图。一种是当我们更改自定义对象并需要查看我们拥有的数据是否需要更新时,例如 item.parent 是一个以前是字符串但现在是数组的 CollaborativeField。其次,我们希望能够将自定义实时对象导出到原始 json 对象以发送到驱动器以存储为不同的文件。我们可以为每个自定义实时对象创建一个特定的函数,但我们创建了一个通用函数,该函数通过创建原始 json 对象的属性递归获取对象。
  • 我明白了.. 作为一种解决方法,您可以改为键入一个唯一的公共函数名称吗?对于导出案例,您还可以考虑使用现有的导入/导出功能,而不是自己滚动。在 Drive API 中检查 realtime.get 和 realtime.update。
  • 出于类似原因,我也对识别协作对象的类型感兴趣。使用函数名不是很健壮,因为我们正在检查文档中包含的对象,这些对象很可能具有同名的属性。听起来像是一个等待发生的错误。我们可以检查对象上是否存在每个公共函数以获得更高的信心,但我认为如果提供官方方法会更好。即使构造函数没有公开,也可能有一个函数返回给定对象的类型(List、Map、EditableString、 或 JsonValue)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多