CloudKit 数据库查询问题

Posted

技术标签:

【中文标题】CloudKit 数据库查询问题【英文标题】:CloudKit Database Query Issue 【发布时间】:2016-09-20 21:54:02 【问题描述】:

我刚开始构建一个 Web 应用程序,出于某种原因,我必须将 CloudKit 及其数据库用于我的后端。

我尝试了一个非常愚蠢的数据库查询,并打算在前端查看结果。这是我的代码:

CloudKit.configure(
containers: [
    containerIdentifier: my identifier,
    apiToken: my api token,
    environment: 'development'
  ]
);

var container = CloudKit.getDefaultContainer();
var DB = container.publicCloudDatabase;

var query = recordType : 'Request';

DB.performQuery(query).then(function(response)
  if (response.hasErrors) 
        throw response.errors[0];
     else 
        console.log(response);
    
);

但是,我不断收到此 authentication_failed 错误:

cloudkit.js:3 Uncaught (in promise) t _ckErrorCode: "AUTHENTICATION_FAILED", _uuid: "4ef8ba12-eb00-408f-9a1c-6e8b4de84ec8", _reason: "no auth method found", _serverErrorCode: "AUTHENTICATION_FAILED", _extensionErrorCode: undefined…

我尝试使用相同的代码获取记录,但它工作正常。 那么是未登录用户引起的错误吗?如果是这样,CloudKit仪表板中是否有任何配置允许来自某个URL的用户无需登录即可查询数据库? 谢谢!

【问题讨论】:

【参考方案1】:

检查 containerIdentifier 值。当我使用 API 令牌的标识符名称而不是从应用程序名称生成的 iCloud 标识符时,我遇到了类似的问题。您还可以通过链接 Test with CloudKit Catalog

验证您的令牌

【讨论】:

以上是关于CloudKit 数据库查询问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用查询快速获取 cloudkit 数据

查询具有多种记录类型的 CloudKit 数据库

如何在 CloudKit JS 中查询元数据?

Cloudkit 关于时间和标记的查询

从模拟器查询公共数据库时出现 Cloudkit 错误

在 Google Apps 脚本中使用 CloudKit Web 服务 API 查询 CloudKit 公共数据库时的 AUTHENTICATION_FAILED