为什么 getFields() 返回一个空对象?
Why is getFields() returning an empty object?
我正在开发 Google Data Studio 社区连接器,我试图只显示一个字段作为开始。所有代码都在 code.gs 文件中,除了 getAuthType() 和 isAdminUser() 在 Auth.gs.
中
问题是调用 getData() 后,getFields() return 是一个空对象。这是日志:
看起来 getSchema() 工作正常,这是该函数的日志:
这里是 getFields() 函数:
function getFields() {
var fields = cc.getFields();
var types = cc.FieldType;
fields
.newDimension()
.setId('device')
.setName('Device')
.setType(types.TEXT);
return fields;
}
这里是 getData():
function getData(request){
console.log('getData request', request);
request.configParams = validateConfig(request.configParams);
console.log('getFields()', getFields(), typeof getFields());
var requestedFields = getFields().forIds(
request.fields.map(function(field){
return field.name;
})
);
try{
console.log('start request');
var apiResponse = fetchDataFromApi(request);
var data = formatData(apiResponse, requestedFields);
}catch (e){
cc.newUserError()
.setDebugText('Error fetching data from API. Exception details: ' + e)
.setText(
'The connector has encountered an unrecoverable error. Please Try again later.'
)
.throwException();
}
return {
schema: requestedFields.build(),
rows: data,
}
}
getSchema():
function getSchema(request){
var schema = {schema: getFields().build()};
console.log(schema);
return schema;
}
社区连接器在同一文件中的所有函数之外初始化:
var cc = DataStudioApp.createCommunityConnector();
我查看了文档,但我找不到任何会导致 getFields() 到 return 空对象的东西,根据我所拥有的。有什么想法吗?
我认为 getFields() 返回一个空对象导致我的应用程序无法正确显示字段,但问题是我传递给应用程序的数据格式不正确。
getFields() 在使用 build() 调用之前没有用(即 getFields().build() )
我认为单独为 getFields() 接收一个空对象是预期的行为。
我正在开发 Google Data Studio 社区连接器,我试图只显示一个字段作为开始。所有代码都在 code.gs 文件中,除了 getAuthType() 和 isAdminUser() 在 Auth.gs.
中问题是调用 getData() 后,getFields() return 是一个空对象。这是日志:
看起来 getSchema() 工作正常,这是该函数的日志:
这里是 getFields() 函数:
function getFields() {
var fields = cc.getFields();
var types = cc.FieldType;
fields
.newDimension()
.setId('device')
.setName('Device')
.setType(types.TEXT);
return fields;
}
这里是 getData():
function getData(request){
console.log('getData request', request);
request.configParams = validateConfig(request.configParams);
console.log('getFields()', getFields(), typeof getFields());
var requestedFields = getFields().forIds(
request.fields.map(function(field){
return field.name;
})
);
try{
console.log('start request');
var apiResponse = fetchDataFromApi(request);
var data = formatData(apiResponse, requestedFields);
}catch (e){
cc.newUserError()
.setDebugText('Error fetching data from API. Exception details: ' + e)
.setText(
'The connector has encountered an unrecoverable error. Please Try again later.'
)
.throwException();
}
return {
schema: requestedFields.build(),
rows: data,
}
}
getSchema():
function getSchema(request){
var schema = {schema: getFields().build()};
console.log(schema);
return schema;
}
社区连接器在同一文件中的所有函数之外初始化:
var cc = DataStudioApp.createCommunityConnector();
我查看了文档,但我找不到任何会导致 getFields() 到 return 空对象的东西,根据我所拥有的。有什么想法吗?
我认为 getFields() 返回一个空对象导致我的应用程序无法正确显示字段,但问题是我传递给应用程序的数据格式不正确。
getFields() 在使用 build() 调用之前没有用(即 getFields().build() )
我认为单独为 getFields() 接收一个空对象是预期的行为。