如何使用Nest API和Firebase基于唯一标识符检索数据?

如何使用Nest API和Firebase基于唯一标识符检索数据?,firebase,nest-api,Firebase,Nest Api,目前,我正在监视Nest设备,可以根据更改采取行动。使用此代码: fireRef = new Firebase('wss://developer-api.nest.com'); fireRef.on('value', function (snapshot) { var snap = snapshot.val(); console.log(snap); }); 这项工作很好,但是,我想访问一些数据,而不必听它。上述函数将返回所有设备,因此很难监控特定的更改。假设上述函数将返回这样一个对象

目前,我正在监视Nest设备,可以根据更改采取行动。使用此代码:

fireRef = new Firebase('wss://developer-api.nest.com');
fireRef.on('value', function (snapshot) {
  var snap = snapshot.val();
  console.log(snap);
});
这项工作很好,但是,我想访问一些数据,而不必听它。上述函数将返回所有设备,因此很难监控特定的更改。假设上述函数将返回这样一个对象,带有唯一标识符,如
structure\u id

{devices: {},
 metadata: {},
 structures{}
}
如何访问特定设备的属性,例如:

get wss://developer-api.nest.com/devices/thermostats/_uniqueID

这显然行不通。有类似的命令吗

要仅接收从“x”向下的结构,您需要使用指向该路径的数据设置读取。这是一个
.bat
示例。首先,OAuth将重定向到某个新URL。如果您的read方法用于重定向,那么您可以使用
https://developer-api.nest.com
。源位于上。必要时进行注释/取消注释。本例使用
CURL
。这假定您已经拥有访问令牌

set access_token=[you'll get this from a successful oauth]

set new_url=https://firebase-apiserver02-tah01-iad01.dapi.production.nest.com:9553

rem VALUE_CONFIG
set value1=target_temperature_f
set value2=name
set value3=hvac_mode
set value4=ambient_temperature_f
set value5=target_temperature_high_f

set value_name=%value3%

rem DEVICE_CONFIG
rem virtual:
set dev_id1=[manually enter example dev_id]
rem real:
set dev_id2=[manually enter example dev_id]

set dev_id=%dev_id1%

set url=https://developer-api.nest.com/%struct_name%.json?auth=%access_token%
set url_by_id=%new_url%/devices/thermostats/%dev_id%.json?auth=%access_token%
set url_by_value=%new_url%/devices/thermostats/%dev_id%/%value_name%.json?auth=%access_token%

rem TOGGLE FOR GET
set GET_DATA=true
rem TOGGLE FOR GET

rem GET_DATA
set get_struct=curl\curl.exe -k -L %url%
set get_by_id=curl\curl.exe -k -L %url_by_id%
set get_by_value=curl\curl.exe -k -L %url_by_value%

set get_url=%get_by_id%

if defined GET_DATA echo %get_url%
if defined GET_DATA echo.
if defined GET_DATA %get_url%
if defined GET_DATA echo.

您可以添加
fireRef.child('devices/thermostats/')。on('value',…)
来检索单个项目的数据,而不是在根目录下读取。请参阅,您可能还对和感兴趣。