Node.js中的Google数据存储.lookup没有返回任何结果

Google datastore.lookup in Node.js returns no results

本文关键字:返回 任何 结果 lookup 存储 js 中的 Google 数据 Node      更新时间:2023-09-26

我正试图通过google-api-nodejs-client JS插件对我的谷歌数据存储数据进行简单查找。当我使用谷歌的"立即尝试"工具运行此查找时,它运行良好:

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: [] }

注意:这与我每次运行datastore.runQuery时在Error中报告的问题有关:当我试图使用runQuery而不是lookup读取相同的数据时,必须设置Query.Query和Query.gql_Query字段之一,但我面临的问题不同。

谢谢。

密钥应该是post有效载荷的一部分:

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的数据存储部分的源。