Dart - 为 Google Cloud Datastore 的 dart 数据存储对象插入索引

Dart - Inserting an index to dart datastore object for Google Cloud Datastore

我正在努力将 Dart 的 client-server example 部署到我的 google 应用程序引擎中。数据被很好地插入到云数据存储中。但是,当查询数据时,每当我发出 GET 请求查询所有数据时,都会发生以下异常。

13:04:19.191  Uncaught error in request handler: An index is needed for the query to succeed.
#0      catchAndReThrowDatastoreException.<anonymous closure> (package:appengine/src/api_impl/raw_datastore_v3_impl.dart:48:5)
#1      _rootRunBinary (dart:async/zone.dart:914)
#2      _CustomZone.runBinary (dart:async/zone.dart:812)
#3      _Future._propagateToListeners.handleError 
...

我做了一些 digging 并发现我可以使用运算符向对象插入索引。

所以我的数据存储对象现在如下:

import 'package:gcloud/db.dart';

@Kind()
class Item extends Model {
  @StringProperty()
  String name;

  operator [](index) => name[index];
  Map serialize() => {'name': name};
  static Item deserialize(Map json) => new Item()..name = json['name'];
}

但是,当我发出查询所有数据的get请求时,仍然抛出相同的异常。

有什么建议吗?

我假设 index.yaml 文件在您的部署命令中丢失

gcloud preview app deploy app.yaml index.yaml

这里用蓝框突出显示了,但我也是第一次错过:
https://www.dartlang.org/server/google-cloud-platform/app-engine/deploy.html