Экземпляр элемента Google Диска в реальном времени с ошибками gapi.drive.realtime.CollaborativeList

В течение примерно 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: Ожидается функция в проверке экземпляра, но она не определена.

Это связано с тем, что gapi.drive.realtime.CollaborativeList не существует в gapi.drive.realtime.


person sdolphin    schedule 03.11.2014    source источник
comment
Можете ли вы включить фрагмент кода, демонстрирующий проблему?   -  person Eric Koleda    schedule 05.11.2014


Ответы (1)


См. ответ Брайана на этот вопрос: Был ли сегодня изменен Drive Realtime API? Обычно нет причин для доступа к конструктору, и это может вызвать проблемы, поэтому доступ был удален.

Каков сценарий, когда вы не знаете, является ли это совместным списком?

person Cheryl Simon    schedule 05.11.2014
comment
У нас есть два сценария, которые нам нужно знать, является ли это списком или картой. Один из них — когда мы изменяем пользовательский объект и нам нужно посмотреть, нужно ли обновлять имеющиеся у нас данные, например, item.parent — это CollaborativeField, который раньше был строкой, а теперь представляет собой массив. Во-вторых, мы хотим иметь возможность экспортировать пользовательский объект реального времени в необработанный объект json для отправки на диск для хранения в виде другого файла. Мы могли бы создать специальную функцию для каждого пользовательского объекта реального времени, но мы создали общую функцию, которая брала объект, рекурсивно просматривая свойства, создавая необработанный объект json. - person sdolphin; 06.11.2014
comment
Понятно... в качестве обходного пути вы могли бы вместо этого ввести одно из уникальных общедоступных имен функций? В случае экспорта вы также можете рассмотреть возможность использования существующих функций импорта/экспорта вместо создания собственных. Проверьте realtime.get и realtime.update в Drive API. - person Cheryl Simon; 06.11.2014
comment
Я также заинтересован в определении типов совместных объектов по тем же причинам. Использование имени функции не очень надежно, потому что мы проверяем объекты, содержащиеся в документах, которые вполне могут иметь свойства с тем же именем. Звучит как ошибка, ожидающая своего появления. Мы могли бы проверить, что каждая публичная функция существует в объекте для большей достоверности, но я думаю, что было бы лучше, если бы был предоставлен официальный метод. Даже если конструкторы не являются общедоступными, может ли быть функция, которая возвращает тип (List, Map, EditableString, ‹CustomTypeName› или JsonValue) для данного объекта? - person Christopher Best; 28.01.2015