Как я могу получить более подробные сообщения об ошибках из Nest Firebase API?

В настоящее время я подключаюсь к Nest Thermostat API с помощью Node.js. В настоящее время в моем приложении работает все, кроме получения подробных сообщений об ошибках.

Всякий раз, когда я хочу внести изменения в структуру, я делаю _sendUpdate вызов Firebase (_fb), определенный как:

FireBaseRef.prototype._sendUpdate = function(path, targetValue, callback) {
    log.i('set ' + path + ' (' + targetValue + ')');
    this._fb.child(path).set(targetValue, function(error {
        log.e(JSON.stringify(error));
    });
}

Которая использует функцию Firebase.set(). В случае ошибки этот обратный вызов передает объект ошибки или null, как описано здесь .

В качестве примера ошибки мы пытаемся установить температуру термостата Nest, когда он установлен на Away. Согласно руководству по Nest API, должно появиться сообщение об ошибке следующего вида: быть увиденным

{
  "error": "Cannot change target temperature while structure is Away",
  "type": "https://developers.nest.com/documentation/cloud/error-messages#structure-in-away-mode",
  "message": "Cannot change target temperature while structure is Away",
  "instance": "31441a94-ed26-11e4-90ec-1681e6b88ec1",
}

Однако вместо этого я просто получаю предупреждение Firebase:

FIREBASE WARNING: set at /devices/thermostats/-GEIJToEG3M9p_jic4J9u7vAgh/target_temperature_c failed: Cannot change target temperature while structure is away 

и мой журнал обнаруживает аналогичную ошибку без подробностей:

{
  "code":"CANNOT CHANGE TARGET TEMPERATURE WHILE STRUCTURE IS AWAY"
}  

Может ли кто-нибудь объяснить, как я могу получить более подробные сообщения об ошибках?

Примечание. Я использую Firebase API 2.4.2, поскольку v3 выдает ошибки при аутентификации, поэтому я прибег к версии, использованной в примере кода (здесь)


person Remy Kabel    schedule 23.08.2016    source источник


Ответы (1)


Попробуйте использовать клиентскую библиотеку Firebase 1.1.3, как указано здесь.

https://developers.nest.com/documentation/cloud/firebase-client-libraries/

person Lionel Iorgulescu    schedule 16.09.2016