【问题标题】:Dart - Inserting an index to dart datastore object for Google Cloud DatastoreDart - 将索引插入到 Google Cloud Datastore 的 dart 数据存储对象中
【发布时间】:2015-02-09 21:27:07
【问题描述】:

我正在努力将 Dart 的 client-server example 部署到我的谷歌应用引擎中。数据被插入到云数据存储中就好了。但是,当查询数据时,每当我发出 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 请求以查询所有数据时,仍然会引发相同的异常。

有什么建议吗?

【问题讨论】:

    标签: google-app-engine dart google-cloud-datastore


    【解决方案1】:

    我假设您的部署命令中缺少 index.yaml 文件

    gcloud preview app deploy app.yaml index.yaml
    

    它在此处以蓝色框突出显示,但我第一次也错过了它:
    https://www.dartlang.org/server/google-cloud-platform/app-engine/deploy.html

    【讨论】:

    • 嘿 Gunter - 是的,这确实是个问题。部署此命令后一切正常:)
    猜你喜欢
    • 2014-07-30
    • 2013-05-11
    • 2017-05-07
    • 2021-01-13
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    相关资源
    最近更新 更多