使用祖先查询运行以下端点函数会在appspot api资源管理器中返回503代码错误,而相同的代码在localhost devserver上的api资源管理器上运行时工作正常。
@ApiMethod(name = "getConferencesCreated",
path = "getConferencesCreated",
httpMethod = HttpMethod.POST
)
public List<Conference> getConferencesCreated(final User user) throws UnauthorizedException {
if (user == null) {
throw new UnauthorizedException("Authorization required");
}
String userId = user.getUserId();
Key<Profile> userKey = Key.create(Profile.class, userId);
return ofy().load().type(Conference.class)
.ancestor(userKey)
.order("name").list();
}
它现在工作正常。问题是查询所需的索引尚未准备好,从而产生503错误。在localhost中运行查询功能将在google的后端启动索引过程,并且在准备好索引后,您的函数将正常工作。