我正在尝试通过google-api-nodejs-client
JS插件对我的Google数据存储区数据进行简单查找。当我使用Google's "try it now" tool运行此查找时,它可以正常工作:
Request
POST https://www.googleapis.com/datastore/v1beta2/datasets/healthier-staging/lookup?key={YOUR_API_KEY}
{
"keys": [
{
"path": [
{
"kind": "Subscriber",
"name": "+1215XXXXXXX"
}
]
}
]
}
Response
200 OK
{
"found": [
{
"entity": {
"key": {
"partitionId": {
"datasetId": "s~healthier-staging"
},
"path": [
{
"kind": "Subscriber",
"name": "+1215XXXXXXX"
}
]
},
"properties": {
"phone": {
...
然而,当我在Node.js中运行完全相同的查询时,我得不到任何结果 - 没有错误,但也没有结果。我能够进行身份验证,连接到数据存储区,创建事务等,因此它似乎不是身份验证问题。这是我正在运行的节点代码:
this.datastore.lookup({
datasetId : 'healthier-staging',
keys: [{ path: [{ kind: 'Subscriber', name: '+1215XXXXXXX' }] }]
},
(function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result);
}).bind(this));
控制台输出是:
{ found: [], missing: [], deferred: [] }
注意:这与我在Error every time I run datastore.runQuery: one of fields Query.query and Query.gql_query must be set中报告的问题有关,我尝试使用runQuery
而不是lookup
来阅读相同的数据,但我面临的问题是不同。
感谢。
答案 0 :(得分:1)
密钥应该是后期有效负载的一部分:
this.datastore.lookup({
datasetId : 'healthier-staging',
resource: {
keys: [{ path: [{ kind: 'Subscriber', name: '+1215XXXXXXX' }] }]
}
},
(function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result);
}).bind(this));
您可以找到API here的数据存储区部分的来源。